应用场景: 有些时候我们希望一些编辑器脚本可以在游戏启动时自动运行,而不是被手动执行;
InitializeOnLoad特性用于解决这个问题,只需要给一个类加上该特性以及给这个类声明一个static构造函数;这个静态构造函数将会在这个类所有静态函数和实例被使用前调用,InitializeOnLoad会保证该函数在编辑器启动时执行;
using UnityEditor;
using UnityEngine;
[InitializeOnLoad]
class MyClass
{
static MyClass ()
{
//update是一个委托类型的变量
EditorApplication.update += Update;
}
static void Update ()
{
Debug.Log("Updating");
}
}