using System; using UnityEngine; using UnityEngine.UIElements; namespace BaseGames.Editor { /// /// 数据模块接口 —— DataHubWindow 中每个资产管理标签页实现此接口。 /// public interface IDataModule { string ModuleId { get; } // 持久化 EditorPrefs 用唯一 key string DisplayName { get; } // 导航侧边栏显示名称 string IconName { get; } // Unity 内置图标名 or null /// 初始化模块,加载数据(首次激活时调用一次)。 void Initialize(); /// 构建列表区内容,onSelected 在选中资产时由模块调用。 void BuildListPane(VisualElement container, Action onSelected); /// 构建详情区内容,selected 为当前选中资产(可为 null)。 void BuildDetailPane(VisualElement container, UnityEngine.Object selected); /// 切换到本模块时调用,可用于刷新数据。 void OnActivated(); } /// /// 可选排序接口。DataHubWindow 自动发现模块时按 升序排列。 /// 未实现此接口的模块默认顺序为 0,再按 DisplayName 字母序排列。 /// public interface IDataModuleOrdered { /// /// 导航侧边栏排列顺序。数值越小越靠前。 /// 建议使用 10, 20, 30… 间隔,便于插入新模块。 /// int DisplayOrder { get; } } }