Сегодня хочу поделиться еще одним простым способом добавления собственных функций в редактор Unity, а именно использованию класса ScriptableWizard.
Так же как и в прошлый раз я реализую функцию LookAt, но с использованием других средств.
Итак разбираем код:
using UnityEditor;
using UnityEngine;
public class LookAtWizard : ScriptableWizard
{
// две публичные переменные, которые будут параметрами визарда
public Transform source; // объект для поворота
public Transform target; // цель
// регистрация функции создания визарда в меню Unity
[MenuItem("Window/Look At Wizard")]
static void CreateWizard()
{
// создаем визард с одной кнопкой "Look At!"
ScriptableWizard.DisplayWizard<LookAtWizard>("Look At", "Look At!");
// если необходимо реализовать вторую
// кнопку, то можно воспользоваться
// другой перегрузкой метода
// ScriptableWizard.DisplayWizard<>
// и реализовать функцию
// void OnWizardOtherButton ()
}
// флаг успешной настройки визарда
private bool _wizardOk = false;
// выполнение функции визарда - OnWizardCreate()
void OnWizardCreate()
{
// выполняем только когда исходные данные верны
if (_wizardOk)
{
source.LookAt(target);
}
}
// функция выполняется при создании визарда
// и при изменении исходных данных пользователем
void OnWizardUpdate()
{
_wizardOk = false;
// один из параметров не указан
if (source == null || target == null)
{
// helpString выдает подсказки пользователю
helpString = "Selcect Source and Target!";
}
// если цель и объект совпадают
else if ((source == target) && (source != null))
{
helpString = "Source equals Target!";
}
else
{
// все проверки пройдены
helpString = "Press \"Look At!\"!";
_wizardOk = true;
}
}
}
Не забываем называть скрипт правильно (LookAtWizard.cs) и положить его в папку с названием Editor.
Вот и результат:
2 комментария на «Еще один пример расширения редактора Unity»
Ваш отзыв
Вы должны войти, чтобы оставлять комментарии.
08 Окт 2011 в 11:22
“http://en.patriot-cccp.ru/index.php?option=com_content&view=article&id=612&lol= industry@uqzpo2.gentleman“>.…
сэнкс за инфу …
23 Дек 2013 в 13:46
lewisohn@dora.progandist” rel=”nofollow”>.…
спс….