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

ExecuteInEditMode

класс в UnityEngine / Реализовано в: UnityEngine.CoreModule

Описание

Заставляет все экземпляры скрипта выполняться в режиме редактирования.

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

Этот атрибут постепенно упраздняется, так как он не учитывает сборный режим. Если Prefab с MonoBehaviour с включенным этим атрибутом редактируется в Prefab Mode и входит в Play Mode, редактор выйдет из Prefab Mode, чтобы предотвратить случайные изменения Prefab, вызванные логикой, предназначенной только для Play Mode.

Чтобы указать, что MonoBehaviour правильно учитывает Prefab Mode и его безопасно открывать в Prefab Mode в Play Mode, вместо атрибута можно использовать атрибут ExecuteAlways. здесь.

Функции не вызываются постоянно, как в режиме воспроизведения.

  • Update вызывается только тогда, когда что-то изменилось в сцене.
  • Awake вызывается только при создании экземпляра скрипта.
  • OnGUI вызывается, когда Game View получает не предназначенное только для редактора Event, которое он не использует ( например, EventType.ScrollWheel) и не перенаправляется в систему сочетаний клавиш редактора (например, EventType.KeyDown). , EventType.KeyUp). События, пересылаемые в Game View, ставятся в очередь, и их немедленная обработка не гарантируется.
  • OnRenderObject и другие функции обратного вызова рендеринга вызываются при каждой перерисовке представления сцены или представления игры.

Смотрите так же: ExecuteAlways, Application.IsPlaying, runInEditMode, EditorApplication.QueuePlayerLoopUpdate.

// The PrintAwake script is placed on a GameObject. The Awake function is usually // called when the GameObject is started at runtime. Due to the ExecuteInEditMode // attribute, the script is also called by the Editor. The Awake() function will be called, // for example, when the Scene is changed to a // different Scene in the Project window. // The Update() function is called, for example, when the GameObject transform // position is changed in the Editor.

using UnityEngine;

[ExecuteInEditMode] public class PrintAwake : MonoBehaviour { void Awake() { Debug.Log("Editor causes this Awake"); }

void Update() { Debug.Log("Editor causes this Update"); } }
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3