Files
plugin-library/Assets/00.StaryEvoTools/Editor/BuildAsset/CreatDomainDirectory.cs

79 lines
2.6 KiB
C#
Raw Normal View History

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