Files
CreatGame/UnityGame/Assets/Scripts/GameLogic/Tools/Config/ConfigManager.cs
2025-07-17 10:17:00 +08:00

35 lines
1003 B
C#

using System.IO;
using System.Net.Mime;
using Luban;
using UnityEngine;
namespace CreatGame
{
/// <summary>
/// 表格
/// </summary>
public class ConfigManager : Singleton<ConfigManager>
{
/// <summary>
///
/// </summary>
private readonly cfg.Tables tables;
/// <summary>
///
/// </summary>
public cfg.Tables Tables => tables;
public ConfigManager()
{
var tablesCtor = typeof(cfg.Tables).GetConstructors()[0];
// 根据cfg.Tables的构造函数的Loader的返回值类型决定使用json还是ByteBuf Loader
System.Delegate loader = new System.Func<string, ByteBuf>(LoadByteBuf);
tables = (cfg.Tables)tablesCtor.Invoke(new object[] {loader});
}
private static ByteBuf LoadByteBuf(string file)
{
return new ByteBuf(File.ReadAllBytes($"{Application.dataPath}/AssetBundle/Config/{file}.bytes"));
}
}
}