因為套件的需要,所以需要在專案載入的時候做一些程式,不難只需要如下程式,參考Unity官方網站
using UnityEditor;
using UnityEngine;
[InitializeOnLoad]
class MyClass
{
static MyClass ()
{
EditorApplication.update += Update;
}
static void Update ()
{
Debug.Log("Updating");
}
}
雖然他說只會執行一次,但我實驗下來,每次進入viusal studio 回到unity就會再度執行一次
網友也提出了解決辦法
#if UNITY_EDITOR
using UnityEngine;
using UnityEditor;
[InitializeOnLoad]
public class AutoEditorCode : ScriptableObject
{
static AutoEditorCode m_Instance = null;
static AutoEditorCode()
{
EditorApplication.update += OnInit;
}
static void OnInit()
{
EditorApplication.update -= OnInit;
m_Instance = FindObjectOfType<AutoEditorCode>();
if (m_Instance == null)
{
m_Instance = CreateInstance<AutoEditorCode>();
// your code here
}
}
}
#endif
這樣確保程式在專案讀取完成的時候只執行一次
因為我的專案依賴其他專案的Class,那怎麼在專案載入的時候判斷是否有Class的存在,
網友也有提出解決方法
Type label = System.Type.GetType("AudioListener");
if(label != null){
// How do I access it's attribute?
// How do I invoke function?
}
最後如果該Class不存在的時候該怎麼顯示訊息, 很簡單
EditorUtility.DisplayDialog("抬頭", "內文", "OK按鈕文字");//回傳true false
好了以上
留言
張貼留言