コード例 #1
0
        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;
        }
コード例 #2
0
        public void SetMesh(WorkingMesh mesh)
        {
            if (m_mesh == mesh)
            {
                return;
            }

            if (m_mesh != null)
            {
                m_mesh.Dispose();
                m_mesh = null;
            }

            m_mesh = mesh;
        }