using System; using System.Collections.Generic; using System.IO; using EditorFramework; using Sirenix.OdinInspector; using UnityEditor; namespace Stary.Evo.Editor { [Serializable] public class CreatArtDomainEntity { private List domainList; [HorizontalGroup] [ReadOnly] public string DomainName; [ReadOnly] public string domainPath; public CreatArtDomainEntity(List domainList) { this.domainList = domainList; } [HorizontalGroup(Width = 60)] [Button("", Icon = SdfIconType.ArrowRepeat, IconAlignment = IconAlignment.RightEdge)] public void CreatDomain() { if (DomainName == "Main") { EditorUtility.DisplayDialog("提示", "主包Main作用域无法再次创建", "确定"); return; } bool isOk = EditorUtility.DisplayDialog("提示", "是否检索并创建缺失目录", "是", "否"); if (isOk) { // 获取或创建ArtServerManageWindow面板 ArtServerManageWindow window = EditorWindow.GetWindow(); if (window != null) { window.CreateDomainDirectory(DomainName); } } } [HorizontalGroup(Width = 60)] [Button("", Icon = SdfIconType.XCircle, IconAlignment = IconAlignment.RightEdge)] public void CloseDomain() { if (DomainName == "Main") { EditorUtility.DisplayDialog("提示", "主包Main作用域无法删除", "确定"); return; } bool isOk = EditorUtility.DisplayDialog("提示", "是否删除此Art", "是", "否"); if (isOk) { BuildArtAssetWindow.RemoveBuildAssetWindow(); EditorFrameworkUtils.DeleteAllChild(domainPath, FileAttributes.Normal); domainList.Remove(this); AssetDatabase.Refresh(); AssetDatabase.SaveAssets(); } } } }