Unity中InitializeOnLoad屬性的妙用

InitializeOnLoad 屬性應用的對象是 靜態構造函數,它能夠保證在編輯器啓動的時候調用此函數。根據這個特性,能夠在編輯器中設置按期的回調(幀更新),來實現相似watchFile的功能。這裏藉助了EditorApplication類中的 update 委託,在編輯器運行時,它將每秒調用屢次。html

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編輯器

相關文章
相關標籤/搜索