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

Выполнение кода скриптов редактора при запуске

Иногда полезно иметь возможность запустить некоторый код скрипта редактора в проекте, как только запустится Unity, не требуя действий от пользователя. Это можно сделать, применив атрибут InitializeOnLoad к классу, который имеет статический конструктор. Статический конструктор — это функция с тем же именем, что и у класса, объявленная статической и не имеющая возвращаемого типа или параметров (см. здесь для получения дополнительной информации):-

using UnityEngine; using UnityEditor; [InitializeOnLoad] public class Startup { static Startup() { Debug.Log("Up and running"); } }

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

Пример того, как можно использовать этот прием, — настройка обычного обратного вызова в редакторе (так сказать, его «обновление кадра»). Класс EditorApplication имеет делегат с именем update, который вызывается много раз в секунду во время работы редактора. Чтобы включить этот делегат при запуске проекта, вы можете использовать следующий код: -

using UnityEditor; using UnityEngine; [InitializeOnLoad] class MyClass { static MyClass () { EditorApplication.update += Update; } static void Update () { Debug.Log("Updating"); } }
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
Руководство Unity 2021.3