#unity3d
Вопрос:
Я только что создал свой собственный редактор в unity.
public class ShapeEditor : Editor
{
private void OnSceneGUI()
{
// Done something
}
}
Я не помещал его ни в одну папку редактора. Это просто где-то в рамках моего проекта.
Почему это работает? Что я получу, если помещу его в папку редактора? Почему я должен это делать?
Ответ №1:
Это работает в редакторе. Но если вы попытаетесь создать исполняемый файл или приложение с помощью этого кода, код редактора больше не будет работать (или даже компилироваться), потому что API редактора недоступны в версиях плеера.
Вот почему вам нужно поместить код, зависящий от API конкретного редактора, в папку редактора, чтобы Unity мог исключить его при создании версии плеера.
Комментарии:
1. Да, основная причина заключается в том, чтобы избежать ошибок компиляции, вызванных использованием API редактора во время сборки. Но иногда бывает удобно использовать код редактора внутри сценария выполнения. В этих случаях код редактора может быть обернут внутри
#if UNITY_EDITOR
#endif
директив и. Код будет выполняться только в редакторе и автоматически будет удален из сборок.