
老规矩,先介绍一下 Unity 的科普小知识:
通常情况下,新建的脚本要挂载到游戏对象上才能运行。下面讲一个脚本无需挂载也可执行的方法。
如果在脚本中的方法前使用[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterSceneLoad)] ,则可以不用挂载到任何游戏对象上即可在程序运行时执行此方法,方便在在程序初始化前做一些额外的初始化工作。
使用示例如下代码所示:
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterSceneLoad)]
public static void DoMethod()
{
GameObject go = GameObject.Find("GameObject/YYY");
Debug.Log("GO:"+go);
Debug.Log("It's the start of the game");
}此时具有该方法的脚本无需挂载到Unity场景中的对象身上即可执行该方法中的内容。运行Unity效果如下:

RuntimeInitializeLoadType更多参数如下所示: