diff --git a/Assets/Cryville/Crtr/Components/SectionalGameObject.cs b/Assets/Cryville/Crtr/Components/SectionalGameObject.cs index 1134336..5c5c15c 100644 --- a/Assets/Cryville/Crtr/Components/SectionalGameObject.cs +++ b/Assets/Cryville/Crtr/Components/SectionalGameObject.cs @@ -106,6 +106,7 @@ namespace Cryville.Crtr.Components { public override void Init() { base.Init(); mesh.Init(transform); + mesh.Mesh = new Mesh(); mesh.Renderer.sharedMaterials = materials = new Material[] { MeshWrapper.NewMaterial(), diff --git a/Assets/Cryville/Crtr/Components/SpriteBase.cs b/Assets/Cryville/Crtr/Components/SpriteBase.cs index fb5a2b6..34c2294 100644 --- a/Assets/Cryville/Crtr/Components/SpriteBase.cs +++ b/Assets/Cryville/Crtr/Components/SpriteBase.cs @@ -89,7 +89,7 @@ namespace Cryville.Crtr.Components { protected void InternalInit(string meshName = "quad") { mesh.Init(transform); mesh.Renderer.sharedMaterials = materials = new Material[] { MeshWrapper.NewMaterial() }; - mesh.Mesh = GenericResources.Meshes[meshName]; + mesh.Mesh = Mesh.Instantiate(GenericResources.Meshes[meshName]); UpdateColor(); UpdateScale(); UpdateZIndex(); diff --git a/Assets/Cryville/Crtr/MeshWrapper.cs b/Assets/Cryville/Crtr/MeshWrapper.cs index c9c7d8b..0734726 100644 --- a/Assets/Cryville/Crtr/MeshWrapper.cs +++ b/Assets/Cryville/Crtr/MeshWrapper.cs @@ -10,9 +10,10 @@ namespace Cryville.Crtr { get; private set; } + Mesh m_mesh; public Mesh Mesh { - get { return MeshFilter.mesh; } - set { MeshFilter.mesh = value; } + get { return m_mesh; } + set { MeshFilter.sharedMesh = m_mesh = value; } } public Transform MeshTransform { get; @@ -42,7 +43,8 @@ namespace Cryville.Crtr { Initialized = true; } public void Destroy() { - Mesh.Destroy(Mesh); + Mesh.Destroy(m_mesh); + m_mesh = null; GameObject.Destroy(MeshObject); } }