public static IModel Get(int index, EModelGroup group = EModelGroup.Base) { IModel mod; #if UNITY_EDITOR if (m_instance.m_dic[(int)group].ContainsKey(index)) { mod = m_instance.m_dic[(int)group][index].Get(); } else { Log.i(ELogType.Model, "LaoHan:ModelManager dont has this index;" + index); var pool = new ModelPool(); pool.index = index; pool.storeCount = 1; m_instance.m_dic[(int)group].Add(index, pool); pool.loadHandler = m_instance.loadHandler; pool.Initialize(() => { }); mod = Get(index, group); } #else mod = m_instance.m_dic[(int)group][index].Get(); #endif if (getHandler != null) { getHandler(index); } return(mod); }
public static void Store(int id, int count, EModelGroup group, EventHandler onStoreHandler) { var g = m_instance.m_dic[(int)group]; if (g.ContainsKey(id)) { g[id].Add(count); onStoreHandler(); } else { var pool = new ModelPool(); pool.index = id; pool.storeCount = count; pool.group = group; g.Add(id, pool); pool.loadHandler = m_instance.loadHandler; pool.Initialize(onStoreHandler); } }