(client) fix: 修复Define加载时的逻辑错误(错误从about文件中筛选define,加载文件不再构建完整路径)

This commit is contained in:
m0_75251201
2025-07-13 09:37:23 +08:00
parent f04be7bb79
commit a336a69157
4 changed files with 32 additions and 18 deletions

View File

@ -160,27 +160,25 @@ namespace Configs
foreach (var path in paths)
{
// 获取程序所在的目录路径
var appDirectory = AppDomain.CurrentDomain.BaseDirectory;
// 构建目标目录的完整路径
var dataDirectory = Path.Combine(appDirectory, path);
try
{
// 检查目录是否存在
if (Directory.Exists(dataDirectory))
if (!Directory.Exists(path))
{
// 获取目录下的所有子文件夹
var subDirectories = Directory.GetDirectories(dataDirectory);
// 遍历并收集每个子文件夹中的 XML 文件
foreach (var dir in subDirectories)
{
var xmlFiles = Directory.GetFiles(dir, "*.xml", SearchOption.AllDirectories);
xmlFilePaths.AddRange(xmlFiles);
}
continue;
}
// 获取目录下的所有子文件夹
var subDirectories = Directory.GetDirectories(path);
// 遍历并收集每个子文件夹中的 XML 文件
foreach (var dir in subDirectories)
{
var xmlFiles = Directory.GetFiles(dir, "*.xml", SearchOption.AllDirectories);
xmlFilePaths.AddRange(xmlFiles);
}
}
catch (Exception ex)
{

View File

@ -123,9 +123,9 @@ namespace Data
packID = packAbout.packID;
if (aboutXmls.Count > 1) Debug.LogWarning($"{packAbout.name}包拥有多个配置文件,系统选择了加载序的第一个,请避免这种情况");
var defineXmls = FindDocumentsWithRootName(aboutXmls, "Define");
var defineXmls = FindDocumentsWithRootName(packDatas, "Define");
// Debug.Log($"Define文件数量{defineXmls.Count}");
foreach (var defineXml in defineXmls) LoadDefines(defineXml);
return true;
}
@ -140,12 +140,15 @@ namespace Data
var className = element.Name.ToString();
if (string.IsNullOrEmpty(className))
continue;
// Debug.Log("1");
var def = LoadDefineClass(element);
if (def == null)
continue;
// Debug.Log("2");
if (!defines.ContainsKey(className))
defines.Add(className, new List<Define>());
defines[className].Add(def);
// Debug.Log($"插入{className},{def.defName}");
}
}

View File

@ -5,7 +5,7 @@ namespace Test
{
public class ClockTest : MonoBehaviour
{
private static float timer = 0;
//private static float timer = 0;
// Start is called once before the first execution of Update after the MonoBehaviour is created
private void Start()