как открыть редактор кода в юнити
Окна редактора (Editor Windows)
Вы можете создать любое количество пользовательских окон в вашем приложении. Они ведут себя точно так же как и инспектор, Scene View или любое другое встроенное окно. Это отличный способ добавить интерфейс в подсистему вашей игры.
Пользовательский интерфейс редактора за авторством Serious Games Interactive, используемый для скриптинга событий кат-сцен
Создание пользовательского окна редактора (Editor Window) включает в себя следующие шаги:
Вывод из EditorWindow
Для того, чтобы сделать своё окно редактора, ваш скрипт должен храниться внутри папки, названной “Editor”. Создайте в этом скрипте класс, который будет производным от EditorWindow. Затем пропишите ваши элементы управления интерфейса во внутренней OnGUI функции.
Отображение окна
Для того, чтобы отобразить окно на экране, создайте элемент меню, который отображает его. Это делается созданием функции, которая активируется при помощи MenuItem property.
Стандартным поведением в Unity будет использование различных окон, закрывая одни и открывая другие (таким образом, повторный выбор элемента меню покажет существующие окна. Это выполняется используя функцию EditorWindow.GetWindow. Вот так:
Отображение окна MyWindow
Это создаст стандартное закрепляемое окно редактора, которое сохраняет свою позицию между вызовами, может быть использовано в пользовательских лейаутах и т.д. Чтобы получить больше контроля над тем, что создаётся, вы можете использовать GetWindowWithRect.
Реализация интерфейса вашего окна
Следующий С# код показывает, как вы можете добавлять элементы интерфейса для вашего пользовательского окна редактора (EditorWindow):
В итоге этот пример создаёт окно, которые выглядит вот так:
Пользовательское окно редактора, созданное при помощи предоставленного примера.
Для дополнительной информации изучите примеры и документацию на странице EditorWindow.
Пользовательские редакторы (Custom Editors)
This will keep an object oriented towards a world-space point. Currently this script will only become active in play mode, that is, when the game is running. When writing editor scripts it’s often useful to have certain scripts execute during edit mode too, while the game is not running. You can do this by adding an ExecuteInEditMode attribute to it:
Создание пользовательского редактора
The above demonstrates how you can get simple scripts running during edit-time, however this alone does not allow you to create your own editor tools. The next step is to create a Custom Editor for script we just created.
Here’s how the default inspector looks for our script above:
Ура блестящим редакторам
A custom editor is a separate script which replaces this default layout with any editor controls that you choose.
To begin creating the custom editor for our LookAtPoint script, you should create another script with the same name, but with “Editor” appended. So for our example: “LookAtPointEditor”.
Этот класс должен быть производным от класса Editor. Атрибут @CustomEditor сообщает Unity для какого компонента предназначен редактор.
It’s not very interesting because all we have done so far is to recreate the Vector3 field, exactly like the default inspector shows us, so the result looks very similar (although the “Script” field is now not present, because we didn’t add any inspector code to show it).
However now that you have control over how the inspector is displayed in an Editor script, you can use any code you like to lay out the inspector fields, allow the user to adjust the values, and even display graphics or other visual elements. In fact all of the inspectors you see within the Unity Editor including the more complex inspectors such as the terrain system and animation import settings, are all made using the same API that you have access to when creating your own custom Editors.
Here’s a simple example which extends your editor script to display a message indicating whether the target point is above or below the gameobject:
So now we have an new element to our inspector which prints a message showing if the target point is above or below the gameobject.
This is just scratching the surface of what you can do with Editor scripting. You have full access to all the IMGUI commands to draw any type of interface, including rendering scenes using a camera within editor windows.
Дополнения для окна Scene View
You can add extra code to the Scene View by implementing an OnSceneGUI in your custom editor.
OnSceneGUI работает точно также, как и OnInspectorGUI, только OnSceneGUI работает в окне Scene view. Для упрощения создания вашего интерфейса редактирования, вы можете использовать функции, указанные в классе Handles. Все функции оттуда предназначены для работы в 3D окне Scene view.
Пользовательские редакторы (Custom Editors)
This will keep an object oriented towards a world-space point. Currently this script will only become active in play mode, that is, when the game is running. When writing editor scripts it’s often useful to have certain scripts execute during edit mode too, while the game is not running. You can do this by adding an ExecuteInEditMode attribute to it:
Создание пользовательского редактора
The above demonstrates how you can get simple scripts running during edit-time, however this alone does not allow you to create your own editor tools. The next step is to create a Custom Editor for script we just created.
Here’s how the default inspector looks for our script above:
Ура блестящим редакторам
A custom editor is a separate script which replaces this default layout with any editor controls that you choose.
To begin creating the custom editor for our LookAtPoint script, you should create another script with the same name, but with “Editor” appended. So for our example: “LookAtPointEditor”.
Этот класс должен быть производным от класса Editor. Атрибут @CustomEditor сообщает Unity для какого компонента предназначен редактор.
It’s not very interesting because all we have done so far is to recreate the Vector3 field, exactly like the default inspector shows us, so the result looks very similar (although the “Script” field is now not present, because we didn’t add any inspector code to show it).
However now that you have control over how the inspector is displayed in an Editor script, you can use any code you like to lay out the inspector fields, allow the user to adjust the values, and even display graphics or other visual elements. In fact all of the inspectors you see within the Unity Editor including the more complex inspectors such as the terrain system and animation import settings, are all made using the same API that you have access to when creating your own custom Editors.
Here’s a simple example which extends your editor script to display a message indicating whether the target point is above or below the gameobject:
So now we have an new element to our inspector which prints a message showing if the target point is above or below the gameobject.
This is just scratching the surface of what you can do with Editor scripting. You have full access to all the IMGUI commands to draw any type of interface, including rendering scenes using a camera within editor windows.
Дополнения для окна Scene View
Вы можете добавить дополнительный код к окну Scene View, реализовав OnSceneGUI в вашем пользовательском редакторе. В данном случае мы добавим второй набор “ручек” позиции, позволяя пользователям перетягивать точку Look-at Point по окну Scene view.
OnSceneGUI работает точно также, как и OnInspectorGUI, только OnSceneGUI работает в окне Scene view. Для упрощения создания вашего интерфейса редактирования, вы можете использовать функции, указанные в классе Handles. Все функции оттуда предназначены для работы в 3D окне Scene view.
Создание и Использование Скриптов
Поведение игровых объектов контролируется с помощью компонентов (Components), которые присоединяются к ним. Несмотря на то, что встроенные компоненты Unity могут быть очень разносторонними, вскоре вы обнаружите, что вам нужно выйти за пределы их возможностей, чтобы реализовать ваши собственные особенности геймплея. Unity позволяет вам создавать свои компоненты, используя скрипты. Они позволяют активировать игровые события, изменять параметры компонентов, и отвечать на ввод пользователя каким вам угодно способом.
Unity supports the C# programming language natively. C# (pronounced C-sharp) is an industry-standard language similar to Java or C++.
Изучение искусства программирования и использования этих языкам выходит за рамки данного введения. Однако есть множество книг, обучающих материалов и ресурсов для изучения программирования в среде Unity. Посетите Обучающий раздел на нашем сайте для получения подробной информации.
Создание скриптов
Unlike most other assets, scripts are usually created within Unity directly. You can create a new script from the Create menu at the top left of the Project panel or by selecting Assets > Create > C# Script from the main menu.
Новый скрипт будет создан в папке, которую вы выбрали в панели Project. Имя нового скрипта будет выделено, предлагая вам ввести новое имя.
Лучше ввести новое имя скрипта сразу после создания чем изменять его потом. Имя, которое вы введете будет использовано, чтобы создать начальный текст в скрипте, как описано ниже.
Структура файла скрипта
When you double-click a script Asset in Unity, it will be opened in a text editor. By default, Unity will use Visual Studio, but you can select any editor you like from the External Tools panel in Unity’s preferences (go to Unity > Preferences).
Содержимое файла будет выглядеть примерно так:
Скрипт взаимодействует с внутренними механизмами Unity за счет создания класса, наследованного от встроенного класса, называемого MonoBehaviour. Вы можете думать о классе как о своего рода плане для создания нового типа компонента, который может быть прикреплен к игровому объекту. Каждый раз, когда вы присоединяете скриптовый компонент к игровому объекту, создается новый экземпляр объекта, определенный планом. Имя класса берется из имени, которое вы указали при создании файла. Имя класса и имя файла должны быть одинаковыми, для того, чтобы скриптовый компонент мог быть присоединен к игровому объекту.
Заметка для опытных программистов: вы можете быть удивлены, что инициализация объекта выполняется не в функции-конструкторе. Это потому, что создание объектов обрабатывается редактором и происходит не в начале игрового процесса, как вы могли бы ожидать. Если вы попытаетесь определить конструктор для скриптового компонента, он будет мешать нормальной работе Unity и может вызвать серьезные проблемы с проектом.
Управление игровым объектом
Как было сказано ранее, скрипт определяет только план компонента и, таким образом, никакой его код не будет активирован до тех пор, пока экземпляр скрипта не будет присоединен к игровому объекту. Вы можете прикрепить скрипт перетаскиванием ассета скрипта на игровой объект в панели Hierarchy или через окно Inspector выбранного игрового объекта. Имеется также подменю Scripts в меню Component, которое содержит все скрипты, доступные в проекте, включая те, которые вы создали сами. Экземпляр скрипта выглядит так же, как и другие компоненты в окне Inspector:-
После присоединения скрипт начнет работать, когда вы нажмете Play и запустите игру. Вы можете проверить это добавив следующий код в функцию Start:-
Debug.Log is a simple command that just prints a message to Unity’s console output. If you press Play now, you should see the message at the bottom of the main Unity editor window and in the Console window (menu: Window > General > Console).
2018–03–19 Page amended with limited editorial review
MonoDevelop replaced by Visual Studio from 2018.1
начало работы с Visual Studio и Unity
Установка поддержки Unity для Visual Studio
Это руководства по установке предназначено для Visual Studio. если вы используете Visual Studio Code, ознакомьтесь с документацией по разработке Unity с VS Code.
скачайте установщик Visual Studioили запустите его, если он уже установлен.
Щелкните Изменить (если установлено) или Установка (для новой установки) для требуемой версии Visual Studio.
это руководства по установке предназначено для Visual Studio для Mac. если вы используете Visual Studio Code, ознакомьтесь с документацией по разработке Unity с VS Code.
Проверка обновлений
рекомендуется обновлять Visual Studio и Visual Studio для Mac, чтобы получить последние исправления ошибок, функции и поддержку Unity. Для этого не требуется обновление версий Unity.
если доступно обновление, Visual Studio Installer отобразит новую версию. Нажмите кнопку Обновить.
Настройка Unity для использования Visual Studio
по умолчанию Unity уже должен быть настроен на использование Visual Studio или Visual Studio для Mac в качестве редактора скриптов. вы можете подтвердить это или изменить внешний редактор скриптов на определенную версию Visual Studio из редактора Unity.
Выберите вкладку Внешние инструменты слева.
Раскрывающийся список внешний редактор скриптов позволяет выбрать разные установки Visual Studio. Можно также нажать кнопку Обзор. в раскрывающемся списке, чтобы добавить неограниченную версию.
После выбора Visual Studio из списка внешнего редактора скриптов, убедитесь, что флажок Editor Attaching (Присоединение редактора) установлен.
Чтобы завершить процесс настройки, закройте диалоговое окно Параметры.
Выберите вкладку Внешние инструменты слева.
Раскрывающийся список внешний редактор скриптов позволяет выбрать разные установки Visual Studio. Можно также нажать кнопку Обзор. в раскрывающемся списке, чтобы добавить неограниченную версию.
Чтобы завершить процесс настройки, закройте диалоговое окно Параметры.
Следующие шаги
сведения о работе с проектом Unity и его отладке в Visual Studio см. в статье использование Инструменты Visual Studio для Unity.