读取策划配置表
一般策划都是通过EXCEL来配置,如下图所示:
Unity读取EXCEL
游戏中并不是直接读取Excel
配置,实际项目中一般都是将Excel
转为xml
、json
、lua
或自定义的文本格式的配置,这样不会让Excel打包时占据额外空间。
对于 Json
格式,在 Excel
中能够安装额外的插件,直接导出为 Json
格式,当然也可以用 Python
批量化处理,这里不赘述
读取json
我们将json文件都放入Resource文件夹中。但一般不推荐按这样做,因为Resource文件夹只读,而且打包时会全部进行压缩后打包。建议将资源打成AssetBundle
放在StreamingAssets
目录或服务器中,方便热更资源
string txt = Resources.Load<TextAsset>("task_cfg").text;
引入LitJson
能帮助我们更好的配置 地址:https://hub.fastgit.org/LitJSON/litjson
使用时引入命名空间: using LitJson;
任务配置读取
LitJson
提供了一个JsonMapper.ToObject<T>(jsonString)
方法,可以直接将json
字符串转为类对象,前提是类的字段名要与json
的字段相同
/// <summary>
/// 任务配置结构
/// </summary>
public class TaskCfgItem
{
public int task_chain_id;
public int task_sub_id;
public string icon;
public string desc;
public string task_target;
public int target_amount;
public string award;
public string open_chain;
}
public class TaskCfg
{
// 任务配置,(链id : 子任务id : TaskCfgItem)
private Dictionary<int, Dictionary<int, TaskCfgItem>> m_cfg;
// 单例模式
private static TaskCfg s_instance;
public static TaskCfg instance
{
get
{
if (s_instance == null)
s_instance