58 lines
1.2 KiB
C#
58 lines
1.2 KiB
C#
using Luban;
|
|
using GameConfig;
|
|
using TEngine;
|
|
using UnityEngine;
|
|
|
|
/// <summary>
|
|
/// 配置加载器。
|
|
/// </summary>
|
|
public class ConfigSystem
|
|
{
|
|
private static ConfigSystem _instance;
|
|
|
|
public static ConfigSystem Instance => _instance ??= new ConfigSystem();
|
|
|
|
private bool _init = false;
|
|
|
|
private Tables _tables;
|
|
|
|
public Tables Tables
|
|
{
|
|
get
|
|
{
|
|
if (!_init)
|
|
{
|
|
Load();
|
|
}
|
|
|
|
return _tables;
|
|
}
|
|
}
|
|
|
|
private IResourceModule _resourceModule;
|
|
|
|
/// <summary>
|
|
/// 加载配置。
|
|
/// </summary>
|
|
public void Load()
|
|
{
|
|
_tables = new Tables(LoadByteBuf);
|
|
_init = true;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 加载二进制配置。
|
|
/// </summary>
|
|
/// <param name="file">FileName</param>
|
|
/// <returns>ByteBuf</returns>
|
|
private ByteBuf LoadByteBuf(string file)
|
|
{
|
|
if (_resourceModule == null)
|
|
{
|
|
_resourceModule = ModuleSystem.GetModule<IResourceModule>();
|
|
}
|
|
TextAsset textAsset = _resourceModule.LoadAsset<TextAsset>(file);
|
|
byte[] bytes = textAsset.bytes;
|
|
return new ByteBuf(bytes);
|
|
}
|
|
} |