C# юнити — построить окна редактора согласно схеме Unity


Содержание

Как сделать диалоговое окно в Unity 3D? [закрыт]

Вроде бы, всё должно быть предельно просто, но в поисковиках не могу найти именно то, что надо. А надо примерно следующее: при клике мышкой по объекту появляется полупрозрачное окошко (почти во всю ширину экрана), содержащее изображение, заголовок, обычный текст и кнопочку закрытия этого самого окна. HELP!

Закрыт по причине того, что вопрос слишком общий участниками αλεχολυτ, Denis, fori1ton, Утка Учится Укрываться, Yuri 27 янв ’17 в 18:46 .

Пожалуйста, исправьте вопрос так, чтобы он описывал конкретную проблему с достаточной детализацией для определения адекватного ответа. Не задавайте сразу несколько вопросов. См. «Как задать хороший вопрос?» для прояснения ситуации. Если вопрос можно переформулировать согласно правилам, изложенным в справке, отредактируйте его.

Как созданному объекту, добавить компонент кнопки, метод и установить ему индекс в C# UNITY 3D

29.03.2020, 21:56

Как обратится к объекту по созданному имени?
то есть по имени объекта — но которое становится известным в результате выполнения кода. это ведь.

Как обратиться к динамически созданному объекту?
Всем привет, возникла проблема, пробую написать игру змейка, проблема при росте змейки, когда.

Как обратиться к динамически созданному объекту в дальнейшем
Делаю нечто вроде шедулера. Есть, к примеру, несколько exe-шников. Для запуска каждого их них.

Как получить доступ к объекту, созданному в другой форме?
Я создал два окна, MainForm и FormInfo. В классе MainForm создаётся объект типа WindowsMediaPlayer.

Как получить глобальный доступ к динамически созданному объекту
вообщем кнопка tb1 определяется в button1_Click и следовательно она локальная,и недоступна в её.

Введение в программирование C# на Unity

Несмотря на то, что встроенные компоненты Unity могут быть очень разносторонними, вскоре ты обнаружишь, что тебе нужно выйти за пределы их возможностей, чтобы реализовать свои собственные особенности геймплея. Unity позволяет тебе создавать свои компоненты, используя скрипты. Они позволяют активировать игровые события, изменять параметры компонентов, и отвечать на действия Игрока каким тебе угодно способом.

Unity поддерживает следующие языки программирования: C# и Javascript. Языки C# и Javascript считаются одними из самых популярных среди программистов. На C# пишутся программы для компьютера, веб приложения, а Javascript активно используется для создания интернет-страниц. В нашем случае:

Установка среды разработки

Чтобы писать скрипты, необходим редактор кода. В комплекте с Unity идет MonoDevelop, так что его не требуется устанавливать отдельно. Другой вариант — использовать Visual Studio — мы рекомендуем ее. Сменить среду разработки можно в настройках: Edit → Preferences, а затем выбери панель External Tools.

Вывод сообщения в консоль Unity

Когда ты напишешь свой первый код и добавишь его в Unity, Unity проверит код и, если в нем нет ошибок, произойдет компиляция.

Консоль (англ. — Console) – это панель в Unity, которая отображает ошибки в коде (отображаются красным значком), предупреждения (отображается желтым значком) и позволяет выводить справочную информацию (белый значок). По умолчанию эта панель отображается в нижней части программы в закладке Console. Если эта панель не отображается на экране, то в главном меню выбери Window → Console.

Чтобы создать скрипт выбери Assets → Create → C# Script. Имя скрипта должно быть обязательно на английском и начинаться с большой буквы. Открой созданный скрипт и напиши:

Скрипт не будет работать до тех пор, пока экземпляр скрипта не будет присоединен к игровому объекту. Ты можешь прикрепить скрипт перетащив его на игровой объект в окно Иерархия или через окно Инспектор выбранного игрового объекта.

Код, который должен вызываться один раз при старте программы, ты можешь написать внутри функции Start(), как в примере выше.

Код, который должен вызываться каждый кадр, ты можешь написать внутри функции Update().

Переменные

Если ты хочешь сохранить данные (количество жизней игрока, патронов или очков опыта), то для этого используются переменные. Переменные разделяются на типы, которых существует огромное множество.

Переменная — поименованная область памяти, адрес которой можно использовать для осуществления доступа к данным и изменять значение в ходе выполнения программы. Переменные хранят в себе информацию разного типа, эти данные называют значением переменной. Для каждого типа данных есть свой тип переменной. Например:

  1. Целочисленные: int (от –2 147 483 648 до 2 147 483 647), long (от –9 223 372 036 854 775 808 до 9 223 372 036 854 775 807).
  2. Символы и строки: char (элемент в кодировке UTF-16), string (последовательность элементов в кодировке UTF-16).
  3. С плавающей запятой (дробные): float (от 1,5 × 10–45 до 3,4 × 1038, с точностью до 7 цифр), double (от 5,0 × 10–324 до 1,7 × 10308, с точностью до 15 цифр).
  4. Логические: bool (значение true или false).

Инициализация переменной

Все переменные в C# должны быть объявлены (инициализированы) до их применения. Например:

Задать значение переменной можно, в частности, с помощью оператора присваивания — знак «=». Кроме того, при объявлении переменной можно сразу задать ее значение. Например:

Переменные численных типов можно складывать, вычитать, умножать и делить:

+ — операция сложения;

— операция вычитания;

* — операция умножения;

/ — операция деления.

А вот так сумму чисел можно вывести в консоль:

Счетчик времени с помощью Time.deltaTime

Практически во всех играх требуется знать сколько времени прошло с момента запуска игры (пример: игры на время). Но в Unity мы можем узнать только сколько прошло времени между кадрами (напоминаю, что игра – это набор кадров, которые быстро меняются. В одну секунду количество таких кадров может достигать 60 и больше).

Чтобы узнать сколько времени прошло между кадрами — используется Time.deltaTime.

Чтобы сделать дробное число целым, ставим перед ним (int).

Позиция объекта

Координаты объекта хранятся в компоненте Transform, свойство — position. Каждая координата имеет тип float. Вот так можно выводить координаты объекта в консоль:

C# юнити — построить окна редактора согласно схеме Unity

С принципами работы методов я знаком класса так с 8го, вопрос не в этом.
Из любого скрипта создаем объект NameObject с отрисовкой кнопок, скорее всего GUI, но возможно и UI. При нажатии кнопки нам нужно return’уть результат в тот скрипт откуда мы вызвали, так понятнее?)
С# начал изучать относительно недавно, возможно придется подключать события или делегаты (с ними пока не знаком), с сессией времени не особо много, поэтому решил спросить совета у гуру.
Не жадный на плюсы.
Наши проекты:
Clicker Mine Mania 2 — Увлекательный кликер в стиле Minecraft
Angry Bee Evolution — Эволюция с элементами кликера
Чего не хватает? — Викторина на логику»

Fumlead Дата: Четверг, 11 Июня 2015, 23:10 | Сообщение # 4
Cmaujluk, а на кой черт создавать именно объект? Вызваем функцию Dialog, которая все рисует, ждет нажатия, возвращает результат.
Параноик с гениальным планом по захвату мира.
beril Дата: Четверг, 11 Июня 2015, 23:14 | Сообщение # 5
Чето вообще ничего не понятно, ч то автор хочет.

Накодил? Убери за собой!
Инвентарь в Unity(UI)
Инвентарь в Unity(GUI)

Хочу вот такое окно

Не жадный на плюсы.
Наши проекты:
Clicker Mine Mania 2 — Увлекательный кликер в стиле Minecraft
Angry Bee Evolution — Эволюция с элементами кликера
Чего не хватает? — Викторина на логику»

Cmaujluk Дата: Пятница, 12 Июня 2015, 15:25 | Сообщение # 6
beril Дата: Пятница, 12 Июня 2015, 15:54 | Сообщение # 7

Нужно директивы использовать #if UNITY_EDITOR

Ну что то вроде этого, если я правильно понял

200?’200px’:»+(this.scrollHeight+5)+’px’);»> Button btn;

void Start
btn.onClick.AddListener(clickeventMethod);

private void clickeventMethod()
<
var у = true;
>

Накодил? Убери за собой!
Инвентарь в Unity(UI)
Инвентарь в Unity(GUI)

200?’200px’:»+(this.scrollHeight+5)+’px’);»> Button btn;

void Start
btn.onClick.AddListener(clickeventMethod);

private void clickeventMethod()
<
var у = true;
>

Вот это уже что-то очень похожее, можешь прокомментировать?
Не жадный на плюсы.
Наши проекты:
Clicker Mine Mania 2 — Увлекательный кликер в стиле Minecraft
Angry Bee Evolution — Эволюция с элементами кликера
Чего не хватает? — Викторина на логику»

Cmaujluk Дата: Пятница, 12 Июня 2015, 16:35 | Сообщение # 8
beril Дата: Пятница, 12 Июня 2015, 17:18 | Сообщение # 9
Button btn; кнопка
btn.onClick.AddListener(clickeventMethod); подписываемся

private void clickeventMethod() метод который сработает при нажатии на кнопку btn
<
var у = true;
>

Использование инструментов Visual Studio для Unity Use Visual Studio Tools for Unity

В этом разделе мы рассмотрим, как использовать возможности интеграции и повышения производительности набора средств Visual Studio для Unity, а также как использовать отладчик Visual Studio для разработки Unity. In this section, you’ll learn how to use Visual Studio Tools for Unity’s integration and productivity features, and how to use the Visual Studio debugger for Unity development.

Открытие скриптов Unity в Visual Studio Open Unity scripts in Visual Studio

После настройки Visual Studio в качестве внешнего редактора скриптов для Unity открытие любого скрипта в редакторе Unity приводит к автоматическому запуску Visual Studio с выбранным скриптом. Once Visual Studio is set as the external script editor for Unity, opening any script from the Unity editor will automatically launch or switch to Visual Studio with the chosen script open. Просто дважды щелкните сценарий в проекте Unity. Just double click a script in your Unity project.

Кроме того, можно запустить Visual Studio без открытия скрипта в редакторе исходного кода, выбрав элемент Открыть проект C# в меню Unity Активы. Alternatively, you can open Visual Studio with no script open in the source editor by selecting Open C# Project from the Assets menu in Unity.

Доступ к документации по Unity Unity documentation access

Доступ к документации по созданию скриптов Unity можно быстро получать из Visual Studio. You can access the Unity scripting documentation quickly from Visual Studio. Если набор средств Visual Studio для Unity не находит документацию по API в локальном режиме, он попытается найти ее через Интернет. If Visual Studio Tools for Unity doesn’t find the API documentation locally, it will try to find it online.

  • В Visual Studio выделите API Unity, с которым хотите ознакомиться (или наведите на него курсор), а затем нажмите клавиши CTRL+ALT+M, CTRL+H. In Visual Studio, highlight or place the cursor over the Unity API you want to learn about, then press Ctrl+Alt+M, Ctrl+H

IntelliSense для сообщений API Unity Intellisense for Unity API Messages

Средство автозавершения кода IntelliSense позволяет легко реализовать сообщения API Unity в скриптах MonoBehaviour и помогает в изучении API Unity. Intellisense code-completion makes it easy to implement Unity API messages in MonoBehaviour scripts, and assists with learning the Unity API. Чтобы использовать IntelliSense для сообщений Unity, сделайте следующее: To use IntelliSense for Unity messages:

Поместите курсор на новую строку внутри тела класса, производного от MonoBehaviour . Place the cursor on a new line inside the body of a class that derives from MonoBehaviour .

Начните вводить имя сообщения Unity, например OnTriggerEnter . Begin typing the name of a Unity message, such as OnTriggerEnter .

После ввода букв «ontri» отображается список предложений IntelliSense. Once the letters «ontri» have been typed, a list of IntelliSense suggestions appears.

Выбранный элемент в списке можно изменить тремя способами: The selection on the list can be changed in three ways:

с помощью клавиш со стрелками ВВЕРХ и ВНИЗ; With the Up and Down arrow keys.

щелкая нужный элемент; By clicking with the mouse on the desired item.

продолжив ввод имени нужного элемента. By continuing to type the name of the desired item.

IntelliSense может вставить выбранное сообщение Unity, включая все необходимые параметры: IntelliSense can insert the selected Unity message, including any necessary parameters:

при нажатии клавиши TAB; By pressing Tab.

при нажатии клавиши ВВОД; By pressing Enter.

при двойном щелчке выбранного элемента. By double-clicking the selected item.

Мастер создания скриптов Unity MonoBehavior Unity MonoBehavior scripting wizard

Мастер MonoBehavior можно использовать для просмотра списка всех методов API Unity и быстрого выполнения пустого определения. You can use the MonoBehavior wizard to view a list of all the Unity API methods and quickly implement an empty definition. Эта функция, особенно со включенным параметром Создать комментарии для метода, полезна при изучении того, что доступно в Unity API. This feature, particularly with the Generate method comments option enabled, is helpful if you are still learning what’s available in the Unity API.

Создание определений пустых методов MonoBehavior с помощью мастера MonoBehavior. To create empty MonoBehavior method definitions with the MonoBehavior wizard:

В Visual Studio поместите курсор туда, где необходимо вставить методы, а затем нажмите клавиши CTRL+SHIFT+M для запуска мастера MonoBehavior. In Visual Studio, position the cursor where you want the methods to be inserted, then press Ctrl+Shift+M to launch the MonoBehavior wizard.

В окне Создание методов скрипта установите флажок рядом с именем каждого метода, который нужно добавить. In the Create script methods window, mark the checkbox next to the name of each method you want to add.

Чтобы выбрать необходимую версию, используйте раскрывающийся список Версия платформы. Use the Framework version dropdown to select your desired version.

Методы по умолчанию вставляются в позицию курсора. By default, the methods are inserted at the position of the cursor. В качестве альтернативы можно вставить их после любого метода, который уже реализован в классе. Для этого измените значение раскрывающегося списка точка вставки на нужное расположение. Alternatively, you can choose to insert them after any method that’s already implemented in your class by changing the value of the Insertion point dropdown to the location you want.

Если вы хотите, чтобы мастер создавал комментарии для выбранных методов, установите флажок Создать комментарии к методу. If you want the wizard to generate comments for the methods you selected, mark the Generate method comments checkbox. Эти комментарии позволяют лучше понять, когда вызывается метод и каковы его общие функции. These comments are meant to help you understand when the method is called and what its general responsibilities are.

Нажмите кнопку ОК, чтобы выйти из мастера и вставить методы в код. Choose the OK button to exit the wizard and insert the methods into your code.

Обозреватель проектов Unity Unity Project Explorer

Обозреватель проектов Unity показывает все файлы и каталоги ваших проектов Unity в том же виде, что и редактор Unity. The Unity Project Explorer shows all of your Unity project files and directories in the same way that the Unity Editor does. Это отличается от навигации по сценариям Unity с помощью обычного обозревателя решений Visual Studio, который организует их в проекты и решения, созданные Visual Studio. This is different than navigating your Unity scripts with the normal Visual Studio Solution Explorer, which organizes them into projects and a solution generated by Visual Studio.

В главном меню Visual Studio выберите Представление > Обозреватель проектов Unity. On the main Visual Studio menu, choose View > Unity Project Explorer. Сочетание клавиш: ALT+SHIFT+E Keyboard shortcut: Alt+Shift+E

Отладка Unity Unity debugging

Набор средств Visual Studio для Unity позволяет отлаживать скрипты редакторов и игр для проекта Unity с помощью мощного отладчика Visual Studio. Visual Studio Tools for Unity lets you debug both editor and game scripts for your Unity project using Visual Studio’s powerful debugger.

Отладка в редакторе Unity Debug in the Unity editor

Начать отладку Start debugging

Visual Studio можно подключить к Unity, нажав кнопку Воспроизвести, отмеченную меткой Подключить к Unity, или использовав клавишу F5. Connect Visual Studio to Unity by clicking the Play button labeled Attach to Unity, or use the keyboard shortcut F5.

Переключитесь в Unity и нажмите кнопку Воспроизвести, чтобы запустить игру в редакторе. Switch to Unity and click the Play button to run the game in the editor.

Когда игра запущена в редакторе Unity при подключении к Visual Studio, все проходимые точки останова будут приостанавливать выполнение игры и выводить соответствующую строку кода в Visual Studio. When the game is running in the Unity editor while connected to Visual Studio, any breakpoints encountered will pause execution of the game and bring up the line of code where the game hit the breakpoint in Visual Studio.

Остановка отладки Stop debugging

В Visual Studio нажмите кнопку Стоп или используйте сочетание клавиш SHIFT + F5. Click the Stop button in Visual Studio, or use the keyboard shortcut Shift + F5.

Дополнительные сведения об отладчике Visual Studio см. в статье First look at the Visual Studio Debugger (Первое знакомство с отладчиком Visual Studio). To learn more about debugging in Visual Studio, see First look at the Visual Studio Debugger.

Подключение к Unity и воспроизведение Attach to Unity and Play

Для дополнительного удобства кнопку Подключить к Unity можно заменить на режим Подключить к Unity и воспроизвести. For added convenience, you can change the Attach to Unity button to Attach to Unity and Play mode.

Щелкните небольшую стрелку вниз рядом с кнопкой Подключить к Unity. Click the small down arrow next to the Attach to Unity button.

В раскрывшемся меню выберите Подключить к Unity и воспроизвести. Select Attach to Unity and Play from the dropdown menu.

Затем на кнопке «Воспроизведение» появляется метка Подключение к Unity и воспроизведение. The play button becomes labeled Attach to Unity and Play. Нажатие этой кнопки или использование клавиши F5 приведет к автоматическому переключению на редактор Unity и запуску игры в редакторе, в дополнение к подключению отладчика Visual Studio. Clicking this button or using the keyboard shortcut F5 now automatically switches to the Unity editor and runs the game in the editor, in addition to attaching the Visual Studio debugger.

Чтобы автоматически остановить игру в редакторе Unity, в Visual Studio нажмите кнопку Стоп или используйте сочетание клавиш SHIFT+F5. Clicking the Stop button in Visual Studio or using the keyboard shortcut Shift+F5 will automatically stop the game in the Unity editor.

Отладка сборок проигрывателя Unity Debug Unity player builds

С помощью Visual Studio можно отлаживать сборки для разработки различных проигрывателей Unity. You can debug development builds of various Unity players with Visual Studio.

Включение отладки скриптов в проигрывателе Unity Enable script debugging in a Unity player

Чтобы открыть параметры сборки в Unity, выберите Файл > Параметры сборки. In Unity, open the Build Settings by selecting File > Build Settings.

В окне параметров сборки установите флажки Сборка разработки и Отладка скриптов. In the Build Settings window, mark the Development Build and Script Debugging checkboxes.

Выбор экземпляр Unity для присоединения отладчика Select a Unity instance to attach the debugger to

В главном меню Visual Studio выберите Отладка > Присоединить отладчик Unity. In Visual Studio, on the main menu, choose Debug > Attach Unity Debugger.

В диалоговом окне Выбор экземпляра Unity отображаются сведения о каждом экземпляре Unity, к которому можно подключиться. The Select Unity Instance dialog displays some information about each Unity instance that you can connect to.

Project Project

Имя проекта Unity, который выполняется в этом экземпляре Unity. The name of the Unity project that’s running in this instance of Unity.

Компьютер Имя компьютера или устройства, на котором выполняется этот экземпляр Unity. Machine The name of the computer or device that this instance of Unity is running on.

Тип Редактор, если этот экземпляр Unity выполняется как часть редактора Unity; Проигрыватель, если этот экземпляр Unity является автономным проигрывателем. Type Editor if this instance of Unity is running as part of the Unity Editor; Player if this instance of Unity is a stand-alone player.

Порт Номер порта UDP-сокета, через который данный экземпляр Unity обменивается данными. Port The port number of the UDP socket that this instance of Unity is communicating over.

Так как набор средств Visual Studio для Unity и экземпляр Unity взаимодействуют через сетевой UDP-сокет, ваш брандмауэр может об этом запросить. Because Visual Studio Tools for Unity and the Unity instance are communicating over a UDP network socket, your firewall might ask about it. В данном случае соединение нужно авторизовать, чтобы VSTU и Unity могли обмениваться данными. If this happens, you’ll have to authorize the connection so that VSTU and Unity can communicate.

Отладка библиотеки DLL в проекте Unity Debug a DLL in your Unity project

Многие разработчики Unity создают компоненты кода в виде внешних библиотек DLL, чтобы разрабатываемые ими функции можно было легко совместно использовать с другими проектами. Many Unity developers are writing code components as external DLLs so that the functionality they develop can be easily shared with other projects. Набор средств Visual Studio для Unity упрощает отладку кода в этих библиотеках DLL без создания проблем для другого кода в проекте Unity. Visual Studio Tools for Unity makes it easy to debug code in these DLLs seamlessly with other code in your Unity project.

В настоящее время набор средств Visual Studio для Unity поддерживает только управляемые библиотеки DLL. At this time, Visual Studio Tools for Unity only supports managed DLLs. Он не поддерживает отладку библиотек DLL машинного кода, например библиотек, созданных на языке C++. It does not support debugging of native code DLLs, such as those written in C++.

Обратите внимание, что описанный здесь сценарий предполагает, что у вас есть исходный код, то есть вы разрабатываете или повторно используете свой собственный код, или у вас есть исходный код для библиотеки стороннего разработчика и вы планируете его развернуть в проекте Unity как библиотеку DLL. Note that the scenario described here assumes that you have the source code—that is, you are developing or re-using your own first-party code, or you have the source code to a third-party library, and plan to deploy it in your Unity project as a DLL. Данный сценарий не описывает отладку библиотеки DLL, для которой у вас нет исходного кода. This scenario does not describe debugging a DLL for which you do not have the source code.

Отладка проекта с управляемой библиотекой DLL, используемой в проекте Unity To debug a managed DLL project used in your Unity project

Добавьте существующий проект библиотеки DLL в решение Visual Studio, которое создается набором средств Visual Studio для Unity. Add your existing DLL project to the Visual Studio solution generated by Visual Studio Tools for Unity. В ряде случаев вы можете создать новый проект с управляемой библиотекой DLL, который будет содержать компоненты кода проекта Unity. В этом сценарии в решение Visual Studio можно добавить новый проект с управляемой библиотекой DLL. Less commonly, you might be starting a new managed DLL project to contain code components in your Unity project; if that’s the case, you can add a new managed DLL project to the Visual Studio solution instead. Дополнительные сведения о добавлении нового или существующего проекта в решение см. в разделе Практическое руководство. Добавление проектов в решение. For more information on adding a new or existing project to a solution, see How to: Add Projects to a Solution.

В любом случае набор средств Visual Studio для Unity сохраняет ссылку на проект, даже если он должен повторно создать файлы проекта и решения, поэтому эти действия нужно будет выполнить только один раз. In either case, Visual Studio Tools for Unity maintains the project reference, even if it has to regenerate the project and solution files again, so you only need to perform these steps once.

Создайте ссылку на нужный профиль платформы Unity в проекте DLL. Reference the correct Unity framework profile in the DLL project. В Visual Studio в свойствах проекта DLL для свойства Целевая платформа укажите версию платформы Unity, которую вы используете. In Visual Studio, in the DLL project’s properties, set the Target framework property to the Unity framework version you’re using. Это библиотека базового класса Unity, соответствующая уровню совместимости API, на который ориентирован ваш проект, например библиотека базовых классов Unity full, micro или web. This is the Unity Base Class Library that matches the API compatibility that your project targets, such as the Unity full, micro, or web base class libraries. Благодаря этому ваша библиотека DLL не будет вызывать методы платформы, существующие на других платформах или уровнях совместимости, но которые могут отсутствовать в версии платформы Unity, которую вы используете. This prevents your DLL from calling framework methods that exist in other frameworks or compatibility levels, but which might not exist in the Unity framework version you’re using.

Указанные ниже действия требуется выполнять, только если вы используете устаревшую среду выполнения Unity. The following is only required if you are using Unity’s legacy runtime. В новой среде выполнения Unity такие выделенные профили версии 3.5 использовать не нужно. If you are using the new Unity runtime, you don’t need to use those dedicated 3.5 profiles anymore. Выберите профиль .NET 4.x, совместимый с вашей версией Unity. Use a .NET 4.x profile compatible with your Unity version.

Скопируйте библиотеку DLL в папку Asset (ресурсы) своего проекта Unity. Copy the DLL to your Unity project’s Asset folder. В Unity ресурсы представляют собой файлы, которые упаковываются и развертываются вместе с вашим приложением Unity, чтобы их можно было загружать во время выполнения. In Unity, assets are files that are packaged and deployed together with your Unity app so that they can be loaded at run-time. Так как библиотеки DLL связываются во время выполнения, их необходимо развертывать как ресурсы. Since DLLs are linked at run time, DLLs must be deployed as assets. Для развертывания в виде ресурса редактору Unity требуется, чтобы библиотеки DLL были помещены в папку Assets вашего проекта Unity. To be deployed as an asset, the Unity Editor requires the DLLs to be put inside the Assets folder in your Unity project. Предусмотрены два способа выполнения этой задачи. There are two ways you can do this:

Измените параметры сборки проекта DLL, чтобы добавить выполняемую после сборки задачу, которая скопирует выходные файлы DLL и PDB из выходной папки в папку Активы проекта Unity. Modify the build settings of your DLL project to include a post-built task that copies the output DLL and PDB files from its output folder to the Assets folder of your Unity project.

Измените параметры сборки проекта DLL, чтобы сделать выходной папкой папку Assets проекта Unity. Modify the build settings of your DLL project to set its output folder to be the Assets folder of your Unity project. Теперь файлы DLL и PDB будут сразу помещаться в папку Assets. Both DLL and PDB files will be placed in the Assets folder.

PDB-файлы необходимы для отладки, так как они содержат символы отладки библиотеки DLL и сопоставляют код DLL с формой его исходного кода. The PDB files are needed for debugging because they contain the DLL’s debugging symbols, and map the DLL code to its source code form. Если будет применяться устаревшая среда выполнения, Инструменты Visual Studio для Unity будут использовать сведения из файлов DLL и PDB для создания файла DLL.MDB. Это формат отладочных символов, применяемый устаревшим модулем обработки скрипов Unity. If you are targeting the legacy runtime, Visual Studio Tools for Unity will use information from the DLL and PDB to create a DLL.MDB file, which is the debug symbol format used by the legacy Unity scripting engine. Если будет применяться новая среда выполнения и формат Portable-PDB, Инструменты Visual Studio для Unity не будут пытаться преобразовывать символы, так как новая среда выполнения Unity может самостоятельно обрабатывать файлы Portable-PDB. If you are targeting the new runtime, and using Portable-PDB, Visual Studio Tools for Unity will not try to do any symbol conversion as the new Unity runtime is able to natively consume Portable-PDBs.

См. подробнее сведения о создании PDB-файлов. More information about PDB generation can be found here. Если будет применяться новая среда выполнения, убедитесь, что для параметра «Отладочная информация» задано значение «Переносимый» для корректного создания файла Portable PDB. If you are targeting the new runtime, please make sure that «Debugging Information» is set to «Portable», in order to properly generate Portable-PDB. Если будет применяться устаревшая среда выполнения, воспользуйтесь значением «Полный». If you are targeting the legacy runtime, you need to use «Full».

Выполните отладку своего кода. Debug your code. Теперь вы можете отлаживать свой исходный код DLL вместе с исходным кодом проекта Unity и использовать все доступные функции, например точки останова и пошаговое выполнение кода. You can now debug your DLL source code together with your Unity project’s source code, and use all the debugging features you are used to, such as breakpoints and stepping through code.

Сочетания клавиш Keyboard shortcuts

Для быстрого доступа средств Unity к функциям Visual Studio можно использовать соответствующие сочетания клавиш. You can quickly access the Unity Tools for Visual Studio functionality by using their keyboard shortcuts. Ниже приведен список таких сочетаний клавиш. Here’s a summary of the shortcuts that are available.

Команда Command Сочетание клавиш Shortcut Имя контекстной команды Shortcut command name
Открыть мастер MonoBehavior Open the MonoBehavior Wizard CTRL+SHIFT+M Ctrl+Shift+M EditorContextMenus.CodeWindow.ImplementMonoBehaviours EditorContextMenus.CodeWindow.ImplementMonoBehaviours
Открыть обозреватель проектов Unity Open the Unity Project Explorer ALT+SHIFT+E Alt+Shift+E View.UnityProjectExplorer View.UnityProjectExplorer
Доступ к документации по Unity Access Unity documentation CTRL+ALT+M, CTRL+H Ctrl+Alt+M, Ctrl+H Help.UnityAPIReference Help.UnityAPIReference
Присоединиться к отладчику Unity (проигрыватель или редактор) Attach to Unity debugger (player or editor) значение по умолчанию отсутствует no default Debug.AttachUnityDebugger Debug.AttachUnityDebugger

Если вас не устраивает сочетание клавиш по умолчанию, его можно изменить. You can change the shortcut key combinations if you don’t like the default. Чтобы узнать, как это сделать, см. статью Определение и настройка сочетаний клавиш в Visual Studio. For information on how to change it, see Identify and customize keyboard shortcuts in Visual Studio.

pestantium

Игры, Разработка Unity3D, Воспоминания и заметки

Поиск по этому блогу

Unity и «Помогаторы» для редактора

В этой статье опишу несколько полезных возможностей и реализаций, которые мне помогли в разработке. Unity уже имеет множество методов чтобы не только «дебажить логами», но и расширять, дорисовывать необходимые данные в окне редактора. Если вы новичок в Unity или вам захотелось освежить знания – «Нужно брать!».

Дебажим логами.

Класс Debug позволяет выводить текст, ошибки, рисовать линии, ставить редактор на паузу и тд. Рассмотрим пример. Метод будет вызван когда противник будет в зоне видимости орудия. В нем, меш оружия повернется в его сторону, нарисует линию к нему. Как только это произойдет — редактор станет в паузу.

Gizmos

Gizmos используются для визуального дебага. Рассмотрим пример. Блоки, которые проходимы для врага, окрашиваются синими кубами, непроходимы – красными (заняты преградой) или серым (нет пути), финиш – голубой цвет. Если выделен элемент земли (мышкой в редакторе) – то зеленым подсвечиваются его соседи (в данном случае диагональные клетки соседями не считаются, система соседей используется для поиска пути). Обратите внимание что Gizmos можно включать и отключать раздельно для каждого типа компонентов в окне Scene (вверху справа) — показано развернутым на первой картинке.

Handles.

Handles используют для отображения и управления объектами в окне сцены. Вот пошаговый пример небольшого редактора для построения кривых: http://catlikecoding.com/unity/tutorials/curves-and-splines/ Если у вас не заработает OnSceneGUI в классе BezierSplineInspector то используйте реализацию через SceneView.onSceneGUIDelegate.

Благодаря этому расширению кролики летают по цикличным кривым. И все это красиво настраивается в редакторе.

Attributes.

Атрибуты помогут вам в совершенно разных ситуациях: украшать инспектор, организовывать меню, работать в runtime, обрабатывать компоненты. Их становится все больше, с каждой новой версией Unity. Атрибуты можно писать самостоятельно, вот несколько интересных примеров: https://github.com/Thundernerd Приведу пример скрипта, который двигает вертексы меша, создавая простейшую имитацию волн. Тут представлены визуальные помощники, которые ограничивают значения некоторых переменных (Range), и показывают всплывающие подсказки (Tooltip). Так же можно настроить контекстное меню для свойства (ContextMenuItem).

Еще один часто применяемый мной прием связан с ContextMenu и ленью. Допустим, вы построили UI с 30 достижениями, они отображаются и скролятся как вы задумали. Вам необходимо заполнить List-ы в классе ссылками на них. Нужно 30 раз перетянуть названия, 30 раз описания и тд. Можно этот процесс автоматизировать.

C# юнити — построить окна редактора согласно схеме Unity

18 просмотра

1 ответ

21 Репутация автора

Я создаю систему инвентаризации и крафта на основе этого учебника Unity Scriptable Objects: https://learn.unity.com/tutorial/introduction-to-scriptable-objects#5cf187b7edbc2a31a3b9b123

В настоящее время у меня все это работает, но я пытаюсь расширить его, чтобы добавить возможность для использованного зелья создать временный бафф или экипированный предмет, чтобы увеличить урон от брони / оружия (как они и должны). Так что мой класс Item имеет список типов класса ItemEffect. Но я не уверен, как заставить это отображаться в моем окне редактора базы данных предметов.

Я уже провел некоторые поиски в сети и нашел довольно старые решения для этой работы, хотя должен признать, что у меня проблемы с тем, чтобы заставить их работать самостоятельно. Я также попытался подойти к нему с точки зрения использования массива, а не списка (я не против ни одного), поскольку массивы работают быстрее, мне не нужно изменять набор данных элемента во время выполнения, и, поскольку он кажется Unity не предполагает показ списков в окне редактора по умолчанию.

Item.cs

ItemEditor.cs

Код сейчас безошибочен, я просто не знаю, как отобразить выпадающий элемент ItemEffect в окне редактора. Вот как это выглядит прямо сейчас:

2D игра на Unity. Подробное руководство. Часть 1

Настройка среды в Unity

Начнем с самого простого: загрузки и настройки Unity.

Загрузите последнюю версию с официального сайта или торрента и запустите установочный файл.

Для редактирования кода в Unity (4.0.1 и выше) служит редактор MonoDevelop. Если вы работаете в Windows, вы можете (и я вам советую) использовать альтернативый редактор Visual Studio 2013 Desktop (C#) для Windows, после чего в настройках Unity измените редактор по умолчанию на Visual Studio.

Полезно знать: невозможно использовать отладчик Visual Studio 2013 Express с Unity. Вы должны иметь Pro версию Visual Studio и купить UnityVS плагин. С версией Express, вы будете иметь лучший редактор кода, но отсутствие отладчика сведет на нет все его достоинства.

Mac OS X

MonoDevelop 4 — существенно лучше, чем старый MonoDevelop 2 в предыдущих версиях Unity. Он, конечно, далек от совершенства, но ничего лучшего под на Mac не придумано.

На каком языке программировать в Unity?

Unity позволяет кодировать на трех языках: JavaScript, C# и Boo. Рекомендую использовать C# — он более мощный и проще.

Научиться пользоваться в главным интерфейсом Unity достаточно просто. Вам, может быть, будет страшно в первый раз, когда открываете программу, но уже через несколько часов вы будете чувствовать себя в нем как рыба в воде.

Вот несколько ссылок, которые могут быть вам полезными:

  • Изучение интерфейса Unitys : основа всех основ. Не зная интерфейса, вы не сможете создавать игры в Unity 3D
  • Создание сцены в Unity : изучение этого раздела поможет вам создать свою собственную сцену
Первая сцена. Создаем новый проект.

Выберите меню File , а затем создаqnt новый проект. Не выбирайте нивакой стандартный пакет на первое время. Вы можете повторно импортировать их позже, если вы захотите, просто поначалу они будут просто сбивать вас с толку.

Выберите 2D настройки. Как и прежде, вы можете изменить этот флаг в настройках проекта позже.

Не беспокойтесь о названии. Оно определяется в настройках, и чтобы изменить имя проекта достаточно просто переименовать папку.

Разметка и панели Unity

Перед вами пустая страница. С ней вы и будете работать, но вам потребуется время, чтобы настроить интерфейс в соответствии со своими конкретными нуждами. Лично мне удобнее, когда консоль находится рядом с игровым экраном, но если у вас маленький монитор, вы можете заменить панели вкладками.

Прежде чем перейти к созданию игры, уделите несколько минут, чтобы подготовить свой проект и сцены.

Чтобы держать все под рукой, советуем создать папки во вкладке Project (Проект). Эти папки будут созданы в папке Assets вашего проекта.

Внимание: папка Assets – это место, где хранится все, что вы добавляете во вкладке Project. Она может быть невидимой в Unity, в зависимости от выбранной разметки вкладки (одна или две колонки), но вы сможете увидеть ее, открыв приложение для экспорта файлов.

Вот пример структуры, которую мы используем в наших проектах. Вы можете адаптировать ее под свои предпочтения.

Ассеты проекта

В вашей панели Project, вы можете найти различные типы ассетов:

Префабы

Многоразовые игровые объекты (например: пули, враги, бонусы).

Префабы можно рассматривать как класс в языке программирования, который может быть обработан в игровых объектах. Это некая форма, которую можно дублировать и изменить по своему желанию в сцене или во время выполнения игры.

Сцены

Сцена содержит игровой уровень или меню.

В отличие от других объектов, создаваемых в панели «Проект», сцены создаются в меню «Файл». Если вы хотите создать сцену, нажмите на кнопку «Новая сцена» в подменю и не забудьте потом сохранить ее в папку Scenes.

Сцены должны быть сохранены вручную. Это классическая ошибка в Unity — сделать некоторые изменения в сцене и ее элементы и забыть сохранить их после. Ваш инструмент контроля версий не увидите никаких изменений до тех пор, сцена не сохранится.

Звуки

Тут все предельно просто. Увидите, если захотите раскидать музыку по разным папкам.

Scripts

Весь код находится здесь. Мы используем эту папку в качестве эквивалента корневой папке в C# проекте.

Textures

Спрайты и изображения вашей игры. В 2D проекте вы можете переименовать эту папку в «Sprites».

Это неважно для 2D проекта, но, оставив название Textures (Текстуры), вы дадите возможность Unity автоматизировать некоторые задачи. Если вы хотите узнать подробную информацию по этой теме, вы можете прочитать об этом здесь , или здесь .

Заметка о папке Resources : если вы уже работали с Unity, вы знает, что Resources – полезная и уникальная папка. Она позволяет загрузить в скрипт объект или файл (с помощью статичного класса Resources ). Она понадобится нам в самом конце (в главе, посвященной меню). Проще говоря, пока мы не будем ее добавлять.

Наша первая игровая сцена

Панель Hierarchy (Иерархия) содержит все объекты, которые доступны в сцене. Это то, чем вы манипулируете, когда начинаете игру с помощью кнопки «Play».

Каждый объект сцены является игровым объектом для Unity. Вы можете создать объект в главной сцене, или в другом объекте игры. Также вы можете в любое время переместить объект чтобы изменить его родителя.

Как вы можете видеть здесь, у нас здесь 3 потомка для объекта Level .

Пустые объекты

В Unity можно создать пустой объект и использовать его в качестве «папки» для других игровых объектов. Это упростит структуру вашей сцены.

Убедитесь, что все они имеют координаты (0, 0, 0) и тогда вы сможете легко их найти! Пустые объекты никак не используют свои координаты, но они влияют на относительные координаты их потомков. Мы не будем говорить об этой теме в этом уроке, давайте просто обнулим координаты ныших пустых объектов.

Заполнение сцены

По умолчанию, новая сцена создается с объектом Main Camera (Главная камера). Перетащите ее на сцену.

Для начала создайте эти пустые объекты:

Scripts Мы добавим наши скрипты сюда. Мы используем этот объект, чтобы прикрепить сценарии, которые не связаны с объектом – например, скрипт гейм-менеджера. Render Здесь будет наша камера и источники света. Level

В Level создайте 3 пустых объекта:

  • 0 — Background
  • 1 — Middleground
  • 2 — Foreground

Сохраните сцену в папке Scenes . Назовите ее как угодно, например Stage1 . Вот, что у нас получилось:

Совет: по умолчанию игровой объект привязан к положению родителя. Это приводит к интересному побочному эффекту при использовании объекта камеры: если камера является дочерним объектом, она автоматически будет отслеживать положение родителя. Если же она является корневым объектом сцены или находится внутри пустого игрового объекта, она всегда показывает один и тот же вид. Однако если вы поместите камеру в движущийся игровой объект, она будет следовать за его передвижениями в пределах сцены. В данном случае нам нужна фиксированная камера, поэтому мы помещаем ее в пустой объект Render . Но запомните это свойство объекта камеры, оно может вам пригодиться. Мы подробно остановимся на этой теме в главе «Паралаксный скроллинг».

Мы только что создали базовую структуру нашей игры. На следующем этапе мы начнем делать забавные вещи: добавим на сцену фон и кое-что еще!

Добавляем фон в сцену

Наш первый фон будет статическим. Воспользуемся следующим изображением:

Импортируйте изображение в папку Textures (Текстуры). Просто скопируйте файл в нее, или перетащите его из проводника. Не беспокойтесь сейчас о настройках импорта.

Создайте в Unity новый игровой объект Sprite на сцене.

Что такое спрайт?

По сути, спрайт – это 2D-изображение, используемое в видео-игре. В данном случае это объект Unity для создания 2D-игр.

Добавляем текстуру спрайта

Unity может автоматически установить фон для вашего спрайта. Если ничего такого не произошло, или если вы хотите изменить текстуру, перейдите на вкладку инспектора и выберите background : (фон)

Вы должны нажать на маленький круглый значок справа от поля ввода, чтобы появилось Select Sprite (Выбрать спрайт) в Инспекторе

Мой спрайт не появляется в диалоговом окне! Убедитесь, что вы находитесь в вкдадке Assets диалогового окна «Select Sprite» (Выбрать спрайт). Если вы видите диалоговое окно пустым, — не пугайтечсь. Дело в том, что для некоторых установок Unity, даже со свежим новым 2D проектом изображения импортируются как «Текстура», а не «Спрайт». Чтобы это исправить, необходимо выбрать изображение на панели «Проект», и в «Инспекторе», изменить свойство «Текстура Type» имущество «Sprite»:

Итак, мы создали простой спрайт отображающий облака на небе. Давайте внесем изменения в сцену. В панели Hierarchy (Иерархия) выберите New Sprite . Переименуйте его в Background1 или что-то такое, что легко запомнить. Переименуйте его в Background1 или что-то такое, что легко запомнить. Затем переместите объект в нужное место: Level -> 0 — Background . Измените координаты на (0, 0, 0) .

Создайте копию фона и поместите его в (20, 0, 0) . Это должно отлично подойти к первой части.

Tip: Вы можете создать копию объекта с помощью клавиш cmd + D в OS X или ctrl + D Windows .

Слои со спрайтами

Следующее утверждение очевидно, но обладает некими неудобствами: мы отображения 2D мир. Это означает, что все изображения на одной и той же глубине, то есть 0 . И вы графический движок не знает, что отображать в первую очередь. Слои спрайтов позволяют нам обозначить, что находится спереди, а что сзади.

В Unity мы можем изменить «Z» наших элементов, что позволит нам работать со слоями. Это то, что мы делали в этом руководстве перед обновлением до Unity 5, но нам понравилась идея идея использовать слои со спрайтами. У вашего компонента Sprite Renderer есть поле с именем Sorting Layer с дефолтным значением. Если щелкнуть на нем, то вы увидите:

Давайте добавим несколько слоев под наши нужды (используйте кнопку + ):

Добавьте фоновый слой к вашему спрайту фона:

Настройка Order in Layer — это способ ограничить подслои. Спрайты с меньшим номером оказываются перед спрайтами с большими числами.

Слой Default нельзя удалить, так как это слой, используемый 3D-элементами. Вы можете иметь 3D-объекты в 2D игре, в частности, частицы рассматриваются как 3D-объекты Unity, так что они будут рендериться на этом слое.

Добавление элементов фона

Также известных как props. Эти элементы никак не влияют на геймплей, но позволяют усовершенствовать графику игры. Вот некоторые простые спрайты для летающих платформ:

Как видите, мы поместили две платформы в один файл. Это хороший способ научиться обрезать спрайты с помощью новых инструментов Unity.

Получение двух спрайтов из одного изображения

Выполняйте следующие действия:

  1. Импортируйте изображения в папку «Текстуры»
  2. Выберите спрайт Platform и перейдите к панели Инспектор
  3. Измените «Sprite Mode» на «Multiple»
  4. Нажмите на кнопку Sprite Editor (Редактор спрайта)

В новом окне ( Sprite Editor ) вы можете рисовать прямоугольники вокруг каждой платформы, чтобы разрезать текстуру на более мелкие части:

Кнопка Slice в левом верхнем углу позволит вам быстро и автоматически проделать эту утомительную работу:

Unity найдет объекты внутри изображения и будет нарежет их автоматически. Вы можете установить дефолтное значение для точки вращения или минимальный размер каждого фрагмента. Для простого изображения без артефактов, это необычайно эффективно. Тем не менее, если вы используете этот инструмент, будьте осторожны и проверьте результат, чтобы убедиться, что вы получили то, что хотели.

В этом уроке проделаем эту операцию вручную. Назовите платформы platform1 и platform2 . Теперь, под файлом изображения, вы должны увидеть два спрайта отдельно:

Добавим их в сцену. Для этого мы будем выполнять те же действия что и для фона: создадим новый спрайт и выберим platform1 . Потом повторим эти действия для platform2 . Поместите их в объект 1 — Middleground . Убедитесь, что их позиция по оси Z равна нулю.

Prefabs (Префабы)

Сохранить эти платформы как префабы. Просто перетащите их в папку Prefabs :

Таким образом вы создадите Prefab , точно отвечающий оригинальному игровому объекту. Вы увидите, что игровой объект, который вы конвертировали в Prefab , представляет собой новый ряд кнопок прямо под его именем:

Заметка о кнопках «Prefab»: При последующей модификации игрового объекта, вы можете использовать кнопку «Apply», чтобы применить эти изменения к Prefab , или кнопку «Revert», чтобы отменить все изменения игрового объекта в свойстваъ Prefab . Кнопка «Select» переместит выбранные свойства в ассет Prefab в окне проекта (они будут выделены).

Создание префабов с объектами-платформами упростит их повторное использование. Просто перетащите Prefab на сцену, чтобы добавить копию. Попробуйте добавить другую платформу таким же образом.

Теперь вы можете добавить больше платформ, меняющих свои координаты, размеры и плоскости (вы можете поместить их на заднем или переднем плане, просто установите координату Z для платформы на 0 ).

На данном этапе все это выглядит еще сыроватым, но в следующих двух главах мы добавим параллаксный скроллинг, и сцена оживет у нас на глазах.

Прежде чем двигаться дальше, мы модифицируем наши слои, чтобы избежать каких-либо проблем с порядком их отображения. Для этого просто измените позицию игровых объектов по оси Z во вкладке Hierarchy (Иерархия) следующим образом:

Слой Позиционирование по оси Z
0 — Задний фон 10
1 — Средний фон 5
2 — передний фон

При переключении из 2D режима в 3D, в окне «Scene» (Сцена) вы будете четко видеть слои:

Кликнув на игровом объекте Main Camera , вы увидите, что флажок Projection установлен на Orthographic . Эта настройка позволяет камере визуализировать 2D игру без учета трехмерных свойств объектов. Имейте в виду, что даже если вы работаете с 2D объектами, Unity по-прежнему использует свой 3D движок для визуализации сцены. Рисунок выше это наглядно демонстрирует.

В следующем уроке:

Вы только что узнали, как создать простой статический фон и как отобразить его должным образом. Затем мы научили вас, как сделать простые спрайты. В следующей главе мы узнаем, как добавить игрока и его врагов.

Уроки Unity C#

Unity C# уроки / #1 — Начинаем программировать

Видеоурок

Создание игр на движке Unity невозможно представить без написания дополнительного кода. В Unity поддерживается два языка программирования — JavaScript и C# . Раньше также поддерживался язык Boo , но позже от него отказались.

Задание к уроку

Установите Unity, а также установите текстовый редактор для дальнейшей работы со скриптами.

Установить Unity можно на официальном сайте. Урок по установке:

Чтобы установить среду разработки вам потребуется скачать либо MonoDevelop , либо Visual Studio .

Большое задание по курсу

Вам необходимо оформить подписку на сайте, чтобы иметь доступ ко всем большим заданиям. В задание входит методика решения, а также готовый проект с ответом к заданию.
PS: подобные задания доступны при подписке от 1 месяца

C# юнити — построить окна редактора согласно схеме Unity

Если вы читали мои предыдущие статьи по Unity3D, то должны помнить, что мы научились создавать объекты на 3D-сцене, а также управлять с помощью C# ими. Однако, если вы их не читали, то не волнуйтесь: эта статья вам даст все необходимые знания для создания независимого проекта на Unity3D. Итак, в этом материале мы научимся создавать простую анимацию на Unity3D, а также запускать её с помощью C#.

Я собираюсь использовать Unity3D версии 5.5.1f1. Для редактирования скриптов на C# подойдет любой текстовый редактор, лично я предпочитаю Notepad++, но можно задействовать как встроенные средства юнити, так и обычный блокнот.

Первое, что нам нужно, это новый проект в Unity, и на рисунке 1 мы видим настройки, которые я выбрал для этого примера. Вы также заметите, что в окне настройки проекта есть вкладка «Начало работы»; она приведет вас к отличным учебникам, примерам и массовому сообществу Unity – именно там можно также всему научиться, если вы хорошо владеете английским языком.

Рисунок 1: Настройка нашего проекта

Затем нам нужно добавить 3D-объект в нашу сцену, которую мы будем анимировать. Один из способов сделать это — просмотреть представление иерархии, которое по умолчанию находится слева от основной рабочей области.

Рисунок 2: Создание 3D-объекта в нашей сцене

Как мы видим на рисунке 2, я добавил куб к сцене. Далее нам нужен контроллер анимации, анимация, а также скрипт C#. В представлении активов внизу сцены давайте создадим все, что нам нужно, щелкнув правой кнопкой мыши на панели, затем:

  • Create -> Animation controller
  • Create -> Animation
  • Create -> C# Script

Рисунок 3: Добавление анимации и анимационного контроллера (контроллера персонажа)

Как только они появятся в нашей сцене, все должно выглядеть так, как показано на рисунке 4:

Рисунок 4: Созданные элементы

Прежде чем идти дальше, давайте озвучим то, что мы пытаемся достичь. И как мы собираемся сделать это. Мы создадим нашу сцену, используя 3D-объект в центре — наш куб, а также мы хотим, чтобы куб вращался по левому нажатию кнопки мыши.

Во-первых, мы создадим состояние, которое из кода, который мы выполним, заставит объект вращаться. Чтобы создать это состояние, дважды щелкните по контроллеру анимации. После этого у вас будет примерно такой вид (на рисунке я ушел немного вперед):

Рисунок 5: Контроллер анимации с созданными состояниями

Два состояния, которые я уже создал, называются состояниями «Normal» и «MouseDownState». Обратите внимание, что сначала я создал нормальное состояние, и вы можете создать состояние, щелкнув правой кнопкой мыши, затем нажмите «Create State», а затем «Empty».

Теперь, если вы посмотрите между двумя созданными состояниями, мы увидим две соединяющие белые линии со стрелками на них. Они называются Tranisations, и для их создания щелкните правой кнопкой мыши состояние и выберите «Make Transition». Далее надо немного отредактировать: нажмите переход и снимите флажок «Has Exit Time». На рисунке 6 показан пример того, что вы увидите:

Рисунок 6: Выбранный переход и Has Exit Time

Если убрать галочку с опцией «Выйти», это не позволит автоматически перейти на «Нормальное» состояние «MouseDownState». Теперь, когда у нас есть базовый макет нашего контроллера, давайте создадим анимацию. Но, прежде чем мы отходим от представления контроллера анимации, нам нужно добавить анимацию в «MouseDownState».

Выбрав состояние, перетащите анимацию, созданную в assets, в поле «Motion», показанное на инспекторе. Вернитесь к нашему представлению сцены, выберите куб в сцене; затем перетащите контроллер анимации на куб. Сделайте то же самое для сценария. А теперь — при выбранном кубе — нажмите кнопку «add component» внизу панели инспектора. Когда появится диалоговое окно компонентов, нажмите «Physics», затем выберите «Box collider». Этот коллайдер поможет нам определить, действительно ли произведен щелчок мышью на 3D-объекте.

Если все вышеперечисленное было сделано, то вы должны увидеть эти компоненты в списке инспекторов, которые у вас есть как показано на рисунке 10 Теперь мы готовы создать простую анимацию вращения. В меню в верхней рабочей области нажмите «Window», а затем «Animation». Комбинация клавиш для этого — Ctrl + 6. Если у вас нет выбранного куба, сделайте это сейчас. Как только вы это сделаете, вы должны увидеть, что окно анимации становится активным, с выбранной анимацией. Взгляните на рисунок 7, а затем добавьте свойство для анимации вращения.

Рисунок 7: Окно анимации, с добавлением свойства Rotation в нашем списке анимаций

Если вы нажмете кнопку «Add Property», вы увидите всплывающее окно, которое у нас есть. Оттуда добавьте свойство вращения; теперь давайте приступим к созданию ключевого кадра, который завершит анимацию. Сначала разверните свойство и переместите маркер текущего времени в позицию по вашему выбору (красная линия), а затем отредактируйте одну из позиций x, y или z так:

Рисунок 8: Создание ключевого кадра в нашей временной строке анимации

Хочу заметить, что использование временной шкалы очень похоже на то, как мы работали с ней при создании анимированного баннера html5 в Google Web Designer или анимации на флеш в Macromedia Flash Professional 8.

После того, как вы добавили ключевые кадры во временную строку, теперь мы можем перейти к скрипту C# и заставить наш куб вращаться, когда нажмем на него.

Из кода видно, что можно получить многие объекты, свойства и все остальное, что нам нужно для построения нашей игры/приложения. Если вы затем запустите сцену и щелкните 3D-объект, мы увидим вращение.

Если вы только начинаете работать с Unity3D, то вам придется многому научиться. Но, когда вы освоите основы, все будет весело, даже если вы просто используете Unity в свое свободное время. Есть вопросы? Пишите.

Цукерберг рекомендует:  Javascript - Js Math.random()
Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих