Объявление
public void ShowModalUtility();Описание
Показать EditorWindow как плавающее модальное окно.
Окно утилиты не позволяет взаимодействовать с редактором во время работы. Это означает, что окно EditorWindow.ShowModalUtility никогда не скрывается редактором Unity. Однако его нельзя закрепить в редакторе.
Окна утилит всегда будут находиться перед обычными окнами Unity. Оно будет скрыто, когда пользователь переключится с Unity на другое приложение.
Примечание. Вам не нужно использовать EditorWindow.GetWindow перед использованием этой функции для отображения окна.

using UnityEditor;
using UnityEngine;
using System.Collections;
// Простой скрипт, который рандомизирует вращение выбранных игровых объектов.
// Он также показывает, какие объекты выбраны в данный момент.
public class RandomizeInSelection : EditorWindow
{
public float rotationAmount = 0.33f;
public string selected = "";
[MenuItem("Example/Randomize Children In Selection")]
static void RandomizeWindow()
{
RandomizeInSelection window = ScriptableObject.CreateInstance(typeof(RandomizeInSelection)) as RandomizeInSelection;
window.ShowModalUtility();
}
void RandomizeSelected()
{
foreach (var transform in Selection.transforms)
{
Quaternion rotation = Random.rotation;
transform.localRotation = Quaternion.Slerp(transform.localRotation, rotation, rotationAmount);
}
}
void OnGUI()
{
foreach (var t in Selection.transforms)
{
selected += t.name + " ";
}
EditorGUILayout.LabelField("Selected Object:", selected);
selected = "";
if (GUILayout.Button("Randomize!"))
RandomizeSelected();
if (GUILayout.Button("Close"))
Close();
}
void OnInspectorUpdate()
{
Repaint();
}
}