using System.Collections.Generic; namespace GFGGame { public class {CfgArrayName} : SingletonBase<{CfgArrayName}> { private Dictionary<{keyType}, {CfgName}[]> _cfgsDic = new Dictionary<{keyType}, {CfgName}[]>(); public {CfgName}[] GetCfgs({keyType} {keyName}) { if (_cfgsDic.TryGetValue({keyName}, out {CfgName}[] cfgs)) { return cfgs; } List<{CfgName}> list = new List<{CfgName}>(); SQLiteHelper.Instance.OpenConnection(); try { var reader = SQLiteHelper.Instance.ReadTableByOneCol("{CfgArrayName}", "{keyName}", {keyName}.ToString()); while (reader.Read()) { var cfg = new {CfgName}(); cfg.setData(reader); list.Add(cfg); } } catch(System.Exception e) { ET.Log.Error(e); } finally { SQLiteHelper.Instance.CloseConnection(); } cfgs = list.ToArray(); _cfgsDic.Add({keyName}, cfgs); return cfgs; } #if UNITY_EDITOR private {CfgName}[] _allDatas; public {CfgName}[] dataArray { get { if (_allDatas == null) { List<{CfgName}> list = new List<{CfgName}>(); SQLiteHelper.Instance.OpenConnection(); try { var reader = SQLiteHelper.Instance.ReadFullTable("{CfgArrayName}"); while (reader.Read()) { var cfg = new {CfgName}(); cfg.setData(reader); list.Add(cfg); } } catch(System.Exception e) { ET.Log.Error(e); } finally { SQLiteHelper.Instance.CloseConnection(); } _allDatas = list.ToArray(); } return _allDatas; } } #endif } }