从较高的角度看,进入运行模式包括以下主要阶段:
Domain Reload 和 Scene Reload 的组合任务会重置脚本域并模拟应用程序在播放器中运行时的启动行为。如果在 Project Settings 中禁用这些步骤,Unity 会跳过这些步骤。
The diagram below provides detailed information about the exact events which Unity skips when Domain Reload and Scene Reload are disabled. Yellow indicates the events Unity skips when Domain Reload is disabled, and pink indicates the events Unity skips when Scene Reload is disabled.
启用场景重新加载和域重新加载后,以下是 Unity 进入运行模式时执行的所有进程和事件的完整列表:
beforeAssemblyReload
事件。OnDisable()
。
b. Unity 等待所有异步操作完成。OnBeforeSerialize()
。
b. 序列化所有公共字段和私有字段值,标有 [NonSerialized]
的值除外。AppDomain.DomainUnload
事件。
ii.销毁 Unity 子域OnAfterDeserialize
事件。
ii.调用 OnValidate()
。
iii.对于使用 [ExecuteInEditMode]
属性的脚本:
1. 调用 OnEnable()
。
2. 调用 OnDisable()
。
3. 调用 OnDestroy()
。afterAssemblyReload
。