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