(client) feat:添加游玩时UI相关贴图,添加3d模型场景按钮,添加多级调色进度条,添加SVG图片包,添加事件定义以及管理器,添加音频管理器,定义部分怪物,添加通信协议定义;fix:修复维度切换错误,修复LogUI显示不正确 (#55)

Co-authored-by: m0_75251201 <m0_75251201@noreply.gitcode.com>
Reviewed-on: #55
This commit is contained in:
2025-09-03 19:59:22 +08:00
parent 450b15e4df
commit 78849e0cc5
208 changed files with 16296 additions and 2228 deletions

View File

@ -67,17 +67,73 @@ namespace Managers
if (packs.Count > 0)
return;
// 获取所有定义包的文件夹路径
// // 获取所有定义包的文件夹路径
// var packFolder = Configs.ConfigProcessor.GetSubFolders(new(dataSetFilePath));
// foreach (var folder in packFolder)
// {
// var pack = new DefinePack();
// if (pack.LoadPack(folder))
// {
// packs.Add(pack.packID, pack);
// }
// }
var packFolder = Configs.ConfigProcessor.GetSubFolders(new(dataSetFilePath));
// 获取当前的加载顺序
var currentOrder = Base.Setting.Instance.CurrentSettings.loadOrder; // 假设为 string[]
var isFirstLaunch = currentOrder == null || currentOrder.Length == 0;
var newOrder = new List<string>(); // 用于最终写回
foreach (var folder in packFolder)
{
var pack = new DefinePack();
if (pack.LoadPack(folder))
{
// 根据加载顺序设置 priority
int priority;
if (isFirstLaunch)
{
// 第一次启动,按遍历顺序设置 priority
// 暂时使用新增时的顺序作为 priority顺序从 newOrder 的索引确定
priority = newOrder.Count;
// 记录该 pack 的 ID后续写回 loadOrder
newOrder.Add(pack.packID);
}
else
{
// 非首次启动,使用现有 loadOrder 中的位置来设置 priority
var idx = Array.IndexOf(currentOrder, pack.packID);
if (idx >= 0)
{
priority = idx;
}
else
{
// 未出现在现有顺序中,放在末尾
priority = currentOrder.Length;
// 可选:也将其加入 newOrder 以更新 loadOrder
}
}
pack.priority = priority;
packs.Add(pack.packID, pack);
}
}
// 如果是第一次启动,写回 loadOrder顺序为 newOrder
if (isFirstLaunch)
{
// 将 newOrder 转换为 string[],并写回设置
Base.Setting.Instance.CurrentSettings.loadOrder = new string[newOrder.Count];
newOrder.CopyTo(Base.Setting.Instance.CurrentSettings.loadOrder);
// 可能需要保存设置到磁盘/持久化
// Example: Settings.Save(Base.Setting.Instance.CurrentSettings);
}
// 字段信息缓存,用于优化反射性能。
Dictionary<Type, FieldInfo[]> fieldCache = new();
@ -130,6 +186,7 @@ namespace Managers
anonymousDefines.Add(typeName, new List<Define>());
anonymousDefines[typeName].Add(defRef);
}
ProcessDefine(defRef);
}
}
@ -208,7 +265,8 @@ namespace Managers
var value = FindDefine(defRef.Item3.description, defRef.Item3.defName);
if (value == null)
{
Debug.LogError($"未找到引用,出错的定义:定义类型:{defRef.Item1.GetType().Name}, 定义名:{defRef.Item1.defName} ; 类型:{defRef.Item3.description}, 定义名:{defRef.Item3.defName}");
Debug.LogError(
$"未找到引用,出错的定义:定义类型:{defRef.Item1.GetType().Name}, 定义名:{defRef.Item1.defName} ; 类型:{defRef.Item3.description}, 定义名:{defRef.Item3.defName}");
continue;
}
@ -352,7 +410,6 @@ namespace Managers
// 如果结果为空,则返回 null。
if (result.Count == 0)
{
Debug.LogWarning($"查询失败:未找到定义类型 '{defineType}'");
return null;
}