Unity 6.3
0 онлайн 2 гостей 3 в системе
Вход

InitializeOnLoadAttribute

класс в UnityEditor

Описание

Позволяет инициализировать класс редактора при загрузке Unity и при перекомпиляции скриптов.

Статические конструкторы с этим атрибутом вызываются при перекомпиляции скриптов в проекте, также известной как Перезагрузка домена). Это происходит, когда:

  • Unity сначала загружает ваш проект.
  • Unity обнаруживает изменения в скриптах, если Автоматическое обновление включен в разделе Конвейер ассетов в Окно настроек).
  • Вход в режим Игры, если перезагрузка домена включена в вашей конфигурации Режима Игры).

Избегайте операций с ассетами, таких как загрузка ассетов в InitializeOnLoad методы. InitializeOnLoad методы вызываются до завершения импорта ассетов, что означает, что загрузка ассетов из этого контекста может завершиться неудачей, что приведет к появлению нулевого объекта. Для инициализации после перезагрузки домена, требующей операций с ассетами, используйте AssetPostprocessor.OnPostprocessAllAssets callback. Этот обратный вызов поддерживает все операции с ассетами и имеет параметр, сигнализирующий о перезагрузке домена.

Дополнительные ресурсы: InitializeOnLoadMethodAttribute.

// The following code example defines a small custom class decorated with `[InitializeOnLoad]`
// and assigns a member method to the `EditorApplication.update` delegate so that it runs and begins
// printing to the console on Editor launch.

using UnityEditor; using UnityEngine;

// InitializeOnLoad ensures this code runs on Editor launch [InitializeOnLoad] class MyClass { // Define a static constructor in which we assign the custom Update method to the delegate static MyClass () { EditorApplication.update += Update; }

// Define a method with the required signature that performs work we want to do on launch static void Update () { Debug.Log("Updating"); } }