Unity中InitializeOnLoad属性的妙用
InitializeOnLoad 属性应用的对象是 静态构造函数,它可以保证在编辑器启动的时候调用此函数。根据这个特性,可以在编辑器中设置定期的回调(帧更新),来实现类似watchFile的功能。这里借助了EditorApplication类中的 update 委托,在编辑器运行时,它将每秒调用多次。
using UnityEditor; using UnityEngine; [InitializeOnLoad] class MyClass { static string strFilePath; static DateTime lastModifyTime; static MyClass () { EditorApplication.update += Update; } static void Update () { DateTime time = File.GetLastWriteTime(strFilePath); if (lastModifyTime == time) return; lastModifyTime = time; // todo... } }
参考:http://docs.manew.com/Manual/RunningEditorCodeOnLaunch.html