Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

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

Пользовательский интерфейс редактора от Serious Games Interactive, используемый для написания сценариев действий кат-сцены.
Пользовательский интерфейс редактора от Serious Games Interactive, используемый для написания сценариев действий кат-сцены.

Создание пользовательского окна редактора включает следующие простые шаги:

  • Создайте сценарий, производный от EditorWindow.
  • Используйте код, чтобы активировать отображение окна.
  • Внедрите код графического интерфейса для своего инструмента.

Производный от EditorWindow

Чтобы создать окно редактора, ваш сценарий должен храниться в папке под названием «Редактор». Создайте в этом скрипте класс, производный от EditorWindow. Затем напишите элементы управления графическим интерфейсом во внутренней функции OnGUI.

using UnityEngine; using UnityEditor; using System.Collections; public class Example : EditorWindow { void OnGUI () { // The actual window code goes here } }

MyWindow.js — помещается в папку под названием «Редактор» внутри вашего проекта.

Отображение окна

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

Поведение по умолчанию в Unity заключается в повторном использовании окон (поэтому при повторном выборе пункта меню будут отображаться существующие окна. Это делается с помощью функции EditorWindow.GetWindow Вот так:

using UnityEngine; using UnityEditor; using System.Collections; class MyWindow : EditorWindow { [MenuItem ("Window/My Window")] public static void ShowWindow () { EditorWindow.GetWindow(typeof(MyWindow)); } void OnGUI () { // The actual window code goes here } }

Отображение MyWindow

При этом будет создано стандартное закрепляемое окно редактора, которое сохраняет свою позицию между вызовами, может использоваться в пользовательских макетах и т. д. Чтобы иметь больший контроль над тем, что создается, вы можете использовать GetWindowWithRect

Реализация графического интерфейса вашего окна

Фактическое содержимое окна визуализируется путем реализации функции OnGUI. Вы можете использовать те же классы UnityGUI, что и для игрового графического интерфейса (GUI и GUILayout). Кроме того, мы предоставляем некоторые дополнительные элементы управления графическим интерфейсом, расположенные в классах только для редактора EditorGUI и EditorGUILayout. Эти классы добавляются к элементам управления, уже доступным в обычных классах, поэтому вы можете смешивать и сочетать по своему усмотрению.

Следующий код C# показывает, как можно добавить элементы графического интерфейса в пользовательское окно EditorWindow:

using UnityEditor; using UnityEngine; public class MyWindow : EditorWindow { string myString = "Hello World"; bool groupEnabled; bool myBool = true; float myFloat = 1.23f; // Add menu item named "My Window" to the Window menu [MenuItem("Window/My Window")] public static void ShowWindow() { //Show existing window instance. If one doesn't exist, make one. EditorWindow.GetWindow(typeof(MyWindow)); } void OnGUI() { GUILayout.Label ("Base Settings", EditorStyles.boldLabel); myString = EditorGUILayout.TextField ("Text Field", myString); groupEnabled = EditorGUILayout.BeginToggleGroup ("Optional Settings", groupEnabled); myBool = EditorGUILayout.Toggle ("Toggle", myBool); myFloat = EditorGUILayout.Slider ("Slider", myFloat, -3, 3); EditorGUILayout.EndToggleGroup (); } }

В этом примере окно выглядит следующим образом:

Пользовательское окно редактора, созданное с использованием предоставленного примера.
Пользовательское окно редактора, созданное с использованием предоставленного примера.

Дополнительную информацию см. в примере и документации на странице EditorWindow.

Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
Руководство Unity 2021.3