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

posted @ 2017-09-27 15:19  meteoric_cry  阅读(1199)  评论(0编辑  收藏  举报