static rthsMeshData GetMeshData(Mesh mesh) { if (mesh == null) { return(default(rthsMeshData)); } MeshRecord rec; if (!s_meshDataCache.TryGetValue(mesh, out rec)) { rec = new MeshRecord(); rec.Update(mesh); s_meshDataCache.Add(mesh, rec); } rec.useCount++; return(rec.meshData); }
static rthsMeshData GetBakedMeshData(SkinnedMeshRenderer smr) { if (smr == null || smr.sharedMesh == null) { return(default(rthsMeshData)); } MeshRecord rec; if (!s_bakedMeshDataCache.TryGetValue(smr, out rec)) { rec = new MeshRecord(); rec.bakedMesh = new Mesh(); smr.BakeMesh(rec.bakedMesh); rec.Update(rec.bakedMesh); s_bakedMeshDataCache.Add(smr, rec); } rec.useCount++; return(rec.meshData); }