1.将Luban文件夹放到和Assets同级别目录下
2.将LubanLib放到Assets文件夹下
3.附代码 Editor 编辑一键读表一键打开目录
4. 介绍一下主要的几个表
5路径在luban文件夹下 表顺序依次为1.2.3
6.首先介绍一下_Beans 里边可以加一些值类型 比如 int float 枚举 等 string vector3也可以
_tables表为 对要加载表也就是info表的记录和规范命名 以便后边生成代码类 以及info表数据的路径看下图
7.这样表就做完了然后点击导表工具会在StreamingAssets下生成json文件
8.创建一个Datamanager类代码如下
using System.Collections; using System.Collections.Generic; using System.IO; using System.Linq; using cfg; using cfg.Bing; using QFramework; using SimpleJSON; using UniRx; using UnityEngine; using UnityEngine.Networking; namespace HF { public class DataManager : Singleton<DataManager> { private Tables _tables; private DataManager() { } public void AsyncInit() { Observable.FromCoroutine(LoadData); } public void SyncInit() { _tables = new Tables(Loader); } #region cfg_InfoCData public List<cfg_InfoCData> GetAllInfocDatum() { return _tables.TbInfo_CData.DataMap.Values.ToList(); } public cfg_InfoCData GetInfocData(int id) { if (_tables.TbInfo_CData.DataMap.TryGetValue(id, out cfg_InfoCData equipData)) { return equipData; } else { Debug.LogError("TbInfo_CData id : " + id + "is not exist"); return _tables.TbInfo_CData.DataMap.First().Value; } } #endregion #region cfg_InfoSData public List<cfg_InfoSData> GetAllInfosDatum() { return _tables.TbInfo_SData.DataMap.Values.ToList(); } public cfg_InfoSData GetInfosData(int id) { if (_tables.TbInfo_SData.DataMap.TryGetValue(id, out cfg_InfoSData equipData)) { return equipData; } else { Debug.LogError("TbInfo_SData id : " + id + "is not exist"); return _tables.TbInfo_SData.DataMap.First().Value; } } #endregion private JSONNode Loader(string fileName) { Debug.Log(fileName); return JSON.Parse(File.ReadAllText(Application.streamingAssetsPath+"/json/" + fileName + ".json")); } public IEnumerator LoadData() { Dictionary<string, JSONNode> jsonNodes = new Dictionary<string, JSONNode>(); foreach (var t in Tables.NameArray) { var uri = new System.Uri(Path.Combine(Application.streamingAssetsPath, "json/" + t + ".json")); UnityWebRequest www = UnityWebRequest.Get(uri); yield return www.SendWebRequest(); if (www.isNetworkError || www.isHttpError) { Debug.Log(www.error); } else { string json = www.downloadHandler.text; jsonNodes.Add(t, JSON.Parse(json)); } yield return null; } _tables = new Tables(jsonNodes); } } }z 9.这样就可以利用这个数据单例类读取表中的数据了 _beans表中的记录类名就是DataManager中的 数据类
如果没有 Luban 和LubanLib 的可以留言评论!