#if UNITY_EDITOR
using UnityEditor;
using UnityEngine;
public class TestEditorLoadMethod: Editor {
// 第一次打开 Unity 编辑器运行一次,之后每次进入 Play 模式都运行一次
[InitializeOnLoadMethod]
private static void InitOnLoad1(){
Debug.Log("InitOnLoad1");
}
// 在每次进入 Play 模式时运行一次,还可以通过参数确定在加载场景之前还是之后调用方法。
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterSceneLoad)]
private static void InitOnLoad2 () {
Debug.Log("InitOnLoad2");
}
}
#endif
- InitializeOnLoadMethod 第一次打开 Unity 编辑器运行一次,之后每次进入 Play 模式都运行一次
- RuntimeInitializeOnLoadMethod 在每次进入 Play 模式时运行一次,还可以通过参数确定在加载场景之前还是之后调用方法。
RuntimeInitializeLoadType.AfterSceneLoad // 加载场景后
RuntimeInitializeLoadType.BeforeSceneLoad // 在加载场景之前
RuntimeInitializeLoadType.AfterAssembliesLoaded // 加载所有程序集并初始化预加载的资源时进行回调
RuntimeInitializeLoadType.BeforeSplashScreen // 在显示启动屏幕之前。
RuntimeInitializeLoadType.SubsystemRegistration //用于注册子系统的回调