public MeshAssembly Get(int id) { if (id <= 0) { return(null); } MeshAssembly mesh_assembly = null; if (_mesh_assemblyMap.TryGetValue(id, out mesh_assembly)) { _refMap[mesh_assembly.Id] = GetCurrentTimeTick(); ReleaseData(false); return(mesh_assembly); } mesh_assembly = DbClassLoader.Instance.QueryData <MeshAssembly>(ConfigDataBase.Instance.DbAccessorFactory, id); if (mesh_assembly == null) { #if UNITY_EDITOR LoggerManager.Instance.Warn("Invalid `id` value in table `mesh_assembly` : " + id); #endif return(null); } _mesh_assemblyMap.Add(id, mesh_assembly); if (_refMap.ContainsKey(mesh_assembly.Id) == false) { _refMap.Add(mesh_assembly.Id, GetCurrentTimeTick()); } ReleaseData(false); return(mesh_assembly); }
public void MemoryUpdate(int key, MeshAssembly mesh_assembly) { MeshAssemblys.RemoveAll(n => n.Id == key); if (_mesh_assemblyMap.ContainsKey(key)) { _mesh_assemblyMap.Remove(key); if (_refMap.ContainsKey(key)) { _refMap.Remove(key); } } if (mesh_assembly != null) { MeshAssemblys.Add(mesh_assembly); _mesh_assemblyMap.Add(key, mesh_assembly); _refMap.Add(key, DateTime.Now.Ticks); } }