RuntimeInitializeOnLoadMethodAttribute
Описание
Используйте этот атрибут для получения обратного вызова при запуске времени выполнения и загрузке первой сцены.
Используйте различные параметры для RuntimeInitializeLoadType, чтобы управлять, когда метод вызван в последовательности запуска.
В следующем списке показан порядок выполнения обратных вызовов RuntimeInitializeLoadType:
- Инициализируются различные низкоуровневые системы (window, assembly, gfx и т.д.)
- Вызываются обратные вызова RuntimeInitializeLoadType.SubsystemRegistration и RuntimeInitializeLoadType.AfterAssembliesLoaded.
- Больше настройки (системы ввода и т.д.)
- Вызывается обратный вызов RuntimeInitializeLoadType.BeforeSplashScreen.
- Первая сцена начинается загрузка.
- Обратный вызов RuntimeInitializeLoadType.BeforeSceneLoad вызван. Объекты сцены загружены, но
Awakeеще не вызван. Все объекты считаются неактивными. AwakeиOnEnableвызываются на MonoBehaviours.- RuntimeInitializeLoadType.AfterSceneLoad Объекты сцены считаются полностью загруженными и настроенными. Активные объекты можно найти с помощью команды FindObjectsByType.
Вышеуказанные детали относятся к запуску сборки Player. При переходе в режим Play в Редакторе обеспечиваются те же вызова.
Время вызова callback по умолчанию RuntimeInitializeLoadType.AfterSceneLoad. Порядок выполнения в каждом из callbacks RuntimeInitializeLoadType не гарантируется.
Примечание: Используйте AlwaysLinkAssemblyAttribute на пакетах или предкомпилированных сборках, которые содержат один или несколько методов с атрибутом [RuntimeInitializeOnLoadMethod], но которые не могут содержать типы, используемые прямо или косвенно в любых сценах, созданных для проекта.
Дополнительные ресурсы: Управляемый стриптинг кода
// Demonstration of the RuntimeInitializeOnLoadMethod attribute using UnityEngine;
class MyClass { [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSplashScreen)] static void OnBeforeSplashScreen() { Debug.Log("Before SplashScreen is shown and before the first scene is loaded."); }
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] static void OnBeforeSceneLoad() { Debug.Log("First scene loading: Before Awake is called."); }
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterSceneLoad)] static void OnAfterSceneLoad() { Debug.Log("First scene loaded: After Awake is called."); }
[RuntimeInitializeOnLoadMethod] static void OnRuntimeInitialized() { Debug.Log("Runtime initialized: First scene loaded: After Awake is called."); } }
Свойства
| Свойство | Описание |
|---|---|
| loadType | Контроль времени вызова обратного вызова. |
Конструкторы
| Конструктор | Описание |
|---|---|
| RuntimeInitializeOnLoadMethodAttribute | Используйте RuntimeInitializeLoadType для управления, когда будет вызван обратный вызов. |