Optimize GC for SectionalGameObject.

This commit is contained in:
2023-02-07 23:15:11 +08:00
parent 7df5b15e2e
commit 4e9d7e5b87

View File

@@ -104,6 +104,7 @@ namespace Cryville.Crtr.Components {
public SpriteInfo body = new SpriteInfo();
public SpriteInfo tail = new SpriteInfo();
Material[] mats;
List<Vector3> vertices;
List<float> lengths;
float sumLength = 0;
@@ -112,7 +113,7 @@ namespace Cryville.Crtr.Components {
base.Init();
mesh.Init(transform);
var mats = mesh.Renderer.materials = new Material[] { mesh.NewMaterial, mesh.NewMaterial, mesh.NewMaterial };
mats = mesh.Renderer.materials = new Material[] { mesh.NewMaterial, mesh.NewMaterial, mesh.NewMaterial };
head.Bind(mats[0]);
body.Bind(mats[1]);
tail.Bind(mats[2]);
@@ -123,7 +124,7 @@ namespace Cryville.Crtr.Components {
protected override void OnDestroy() {
base.OnDestroy();
Reset();
foreach (var m in mesh.Renderer.materials) Material.Destroy(m);
foreach (var m in mats) Material.Destroy(m);
if (_shape != null) _shapePool.Return(_shape);
if (vertices != null) {
_ptPool.Return(vertices);