Unity 自動編譯后啟動Unity


Unity 自動編譯后啟動Unity

需求由來

  • 因為項目特別大所以關閉了Auto Refresh自動刷新
    • 防止代碼還沒寫完Unity就自動加載
  • 每次寫完代碼都需要
    • 手動Ctrl+R刷新資源(耗時1分鍾左右)
    • 手動運行Unity
    • 需要2個操作 中間容易出小差
  • 系統響應時間太長 效率很低

解決方案

  • 用代碼刷新資源后立刻啟動Unity

使用方式

  • 快捷鍵:Ctrl+Alt+R
  • 菜單欄:ZQFramwork/自動編譯后啟動Unity

源碼

using UnityEditor;
using UnityEngine;

public class AutoCompilePlay : EditorWindow
{
    [MenuItem("ZQFramwork/自動編譯后啟動Unity %&r", false, 0)]
    public static void Open()
    {
        AutoCompilePlay me = GetWindow<AutoCompilePlay>();
        me.titleContent = new GUIContent("自動啟動工具");
        me.minSize = new Vector2(200, 100);
        me.maxSize = me.minSize;

        EditorApplication.isPlaying = false;//停止運行
        AssetDatabase.Refresh();//刷新資源
    }

    //每秒10幀調用
    private void OnInspectorUpdate()
    {
        Repaint();//重繪
    }

    private void OnGUI()
    {
        EditorGUILayout.Space();
        EditorGUILayout.Space();
        EditorGUILayout.Space();
        EditorGUILayout.Space();
        EditorGUILayout.Space();

        if (EditorUtility.scriptCompilationFailed)
        {
            Debug.LogError("編譯報錯");
            Close();
            return;
        }

        if (EditorApplication.isCompiling)
        {
            EditorGUILayout.LabelField("正在編譯");
            return;
        }

        if (Application.isPlaying == false)
        {
            EditorGUILayout.LabelField("正在啟動");
            EditorApplication.isPlaying = true;
        }
        else if (Application.isPlaying == true)
        {
            Close();
        }
    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM