ET6.0 中的配置档读取及解析
注意:目前配置档读取适合的是 1类1文件形式 (下期扩展1类多文件形式)
ET6.0 的配置档读取,Server和Client使用的是同一套逻辑,只是读取资源,加载方式不同
Excel -> json -> class -> bytes
重点说下加载方式 和 转化为类:
Server: 主要是通过IO的形式
foreach (string file in Directory.GetFiles(paths[i], "*.bytes"))
{
string key = Path.GetFileNameWithoutExtension(file);
output[key] = File.ReadAllBytes(file);
}
Client: 其实是将Config目录设置了ab名,使用的ab模式去加载
Dictionary<string, UnityEngine.Object> keys = ResourcesComponent.Instance.GetBundleAll("config.unity3d");
foreach (var kv in keys)
{
TextAsset v = kv.Value as TextAsset;
string key = kv.Key;
output[key] = v.bytes;
}
转化为类:
byte[] oneConfigBytes = configBytes[configType.Name];
object category = ProtobufHelper.FromBytes(configType, oneConfigBytes, 0, oneConfigBytes.Length);
lock (self)
{
self.AllConfig[configType] = category;
}