using System; using Stary.Evo.Editor; using UnityEditor; using UnityEngine; namespace Stary.Evo { [InitializeOnLoad] public static class CreatDomainDirectory { static CreatDomainDirectory() { // 注意 因为这个构造函数会被重复调用, //所以为了防止quitting和update两个回调被重复添加,需要先移除后添加 EditorApplication.quitting -= OnEditorQuit; EditorApplication.quitting += OnEditorQuit; if (!CustomEditorPrefs.HasKey("StartUp")) { // 通过标记记录是否已经执行过该方法 OnEditorStartUp(); CustomEditorPrefs.SetInt("StartUp", 1); if (CustomEditorPrefs.GetInt("CreatDomainDirectory") == 0) { CustomEditorPrefs.SetInt("CreatDomainDirectory", 1); bool isOk = EditorUtility.DisplayDialog("提示", "发现目录存在缺失,是否检索并创建缺失目录", "是", "否"); if (isOk) { var DomainAll = CreatAssetWindow.GetCreatDomainAll(); foreach (var domain in DomainAll) { CreatAssetWindow.CreateDomainDirectory(domain.DomainName); } } } if (CustomEditorPrefs.GetString("ChangePlayerSchema") == "") { ChangePlayerSchema.SetPlayerMode(PLayerMode.EDITOR_SIMULATEMODE); } else { ChangePlayerSchema.SetPlayerMode( Enum.Parse(CustomEditorPrefs.GetString("ChangePlayerSchema"))); } } } /// /// UnityEditor 关闭时取消标记 /// private static void OnEditorQuit() { CustomEditorPrefs.DeleteKey("StartUp"); } /// /// 只会在UnityEditor启动时执行一次 /// static void OnEditorStartUp() { Debug.Log(" UnityEditor 启动 "); } } }