Optimize GC for mesh wrapper.

This commit is contained in:
2023-03-24 17:10:30 +08:00
parent e2c683567e
commit e03dbef5ff
3 changed files with 7 additions and 4 deletions

View File

@@ -106,6 +106,7 @@ namespace Cryville.Crtr.Components {
public override void Init() { public override void Init() {
base.Init(); base.Init();
mesh.Init(transform); mesh.Init(transform);
mesh.Mesh = new Mesh();
mesh.Renderer.sharedMaterials = materials = new Material[] { mesh.Renderer.sharedMaterials = materials = new Material[] {
MeshWrapper.NewMaterial(), MeshWrapper.NewMaterial(),

View File

@@ -89,7 +89,7 @@ namespace Cryville.Crtr.Components {
protected void InternalInit(string meshName = "quad") { protected void InternalInit(string meshName = "quad") {
mesh.Init(transform); mesh.Init(transform);
mesh.Renderer.sharedMaterials = materials = new Material[] { MeshWrapper.NewMaterial() }; mesh.Renderer.sharedMaterials = materials = new Material[] { MeshWrapper.NewMaterial() };
mesh.Mesh = GenericResources.Meshes[meshName]; mesh.Mesh = Mesh.Instantiate(GenericResources.Meshes[meshName]);
UpdateColor(); UpdateColor();
UpdateScale(); UpdateScale();
UpdateZIndex(); UpdateZIndex();

View File

@@ -10,9 +10,10 @@ namespace Cryville.Crtr {
get; get;
private set; private set;
} }
Mesh m_mesh;
public Mesh Mesh { public Mesh Mesh {
get { return MeshFilter.mesh; } get { return m_mesh; }
set { MeshFilter.mesh = value; } set { MeshFilter.sharedMesh = m_mesh = value; }
} }
public Transform MeshTransform { public Transform MeshTransform {
get; get;
@@ -42,7 +43,8 @@ namespace Cryville.Crtr {
Initialized = true; Initialized = true;
} }
public void Destroy() { public void Destroy() {
Mesh.Destroy(Mesh); Mesh.Destroy(m_mesh);
m_mesh = null;
GameObject.Destroy(MeshObject); GameObject.Destroy(MeshObject);
} }
} }