using UnityEngine;
public class MyClass
{
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterSceneLoad)]
private static void AfterSceneLoad()
{
Debug.Log("AfterSceneLoad");
}
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
private static void BeforeSceneLoad()
{
Debug.Log("BeforeSceneLoad");
}
[RuntimeInitializeOnLoadMethod]
private static void RuntimeInitializeOnLoadMethod()
{
Debug.Log("RuntimeInitializeOnLoadMethod");
}
}
Unity 5.0开始增加了RuntimeInitializeOnLoadMethodAttribute,这样就很方便在游戏初始化之前做一些额外的初始化工作,SDK初始等工作。
在函数上增加这行代码 运行的时候就会执行该函数 函数必须static 此脚本不需要挂载GameObject上
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterSceneLoad)]
RuntimeInitializeLoadType.AfterSceneLoad 参数可加可不加 调节当前方法的执行顺序
执行的生命周期顺序:BeforeSceneLoad–> Awake –> OnEnable –> AfterSceneLoad–> RuntimeMethodLoad –> Start。