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

78 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;
2026-03-25 16:58:26 +08:00
2025-07-02 16:28:08 +08:00
2026-01-07 18:20:13 +08:00
if (!CustomEditorPrefs.HasKey("StartUp"))
{
2025-07-02 16:28:08 +08:00
// 通过标记记录是否已经执行过该方法
OnEditorStartUp();
2026-01-07 18:20:13 +08:00
CustomEditorPrefs.SetInt("StartUp", 1);
2025-07-02 16:28:08 +08:00
2026-01-07 18:20:13 +08:00
if (CustomEditorPrefs.GetInt("CreatDomainDirectory") == 0)
{
2026-01-07 18:20:13 +08:00
CustomEditorPrefs.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
2026-01-07 18:20:13 +08:00
if (CustomEditorPrefs.GetString("ChangeHotUpdateSchema") == "")
2025-07-02 16:28:08 +08:00
{
ChangeHotUpdateSchema.SetHotUpdateMode(HotUpdateMode.NotUpdate);
}
else
{
ChangeHotUpdateSchema.SetHotUpdateMode(
2026-01-07 18:20:13 +08:00
Enum.Parse<HotUpdateMode>(CustomEditorPrefs.GetString("ChangeHotUpdateSchema")));
2025-07-02 16:28:08 +08:00
}
2026-01-07 18:20:13 +08:00
if (CustomEditorPrefs.GetString("ChangePlayerSchema") == "")
2025-07-02 16:28:08 +08:00
{
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 启动 ");
}
}
}