Unity 自動編譯后啟動Unity
需求由來
- 因為項目特別大所以關閉了Auto Refresh自動刷新
- 每次寫完代碼都需要
- 手動Ctrl+R刷新資源(耗時1分鍾左右)
- 手動運行Unity
- 需要2個操作 中間容易出小差
- 系統響應時間太長 效率很低
解決方案
使用方式
- 快捷鍵: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();
}
}
}