diff --git a/Client/Assets/Scripts/Managers/DefineManager.cs b/Client/Assets/Scripts/Managers/DefineManager.cs index 776a6f9..bdd79a2 100644 --- a/Client/Assets/Scripts/Managers/DefineManager.cs +++ b/Client/Assets/Scripts/Managers/DefineManager.cs @@ -21,8 +21,39 @@ namespace Managers var pack = new DefinePack(); if (pack.LoadPack(folder)) packs.Add(pack.packID, pack); } - } + foreach (var pack in packs) + { + foreach (var define in pack.Value.defines) + { + var typeName=define.Key; + var defList=define.Value; + if (!defines.ContainsKey(typeName)) + defines[typeName] = new Dictionary(); + foreach (var def in defList) + { + defines[typeName][def.defName] = def; + } + } + } + } + /// + /// 查找指定定义类型的定义名对应的 Define 对象。 + /// + /// 定义类型 + /// 定义名 + /// 如果找到,返回 Define 对象;否则返回 null。 + public Define FindDefine(string defineType, string defineName) + { + if (defines.TryGetValue(defineType, out var typeDict)) + { + if (typeDict.TryGetValue(defineName, out var define)) + { + return define; + } + } + return null; + } public override string ToString() { if (packs == null || packs.Count == 0)