public void FromRenderer(MeshRenderer renderer) { //clean old data m_mesh?.Dispose(); m_materials?.Dispose(); MeshFilter filter = renderer.GetComponent <MeshFilter>(); if (filter != null && filter.sharedMesh != null) { m_mesh = filter.sharedMesh.ToWorkingMesh(m_allocator); } foreach (var mat in renderer.sharedMaterials) { m_materials.Add(mat.ToWorkingMaterial(m_allocator)); } m_localToWorld = renderer.localToWorldMatrix; }
public void SetMesh(WorkingMesh mesh) { if (m_mesh == mesh) { return; } if (m_mesh != null) { m_mesh.Dispose(); m_mesh = null; } m_mesh = mesh; }