public void UpdateMesh() { gameObject.SetActive(true); if (buffer.vertices == null || buffer.vertices.Length / 4 != rectangleCount) { buffer.Alloc(rectangleCount); } else { buffer.index = 0; } for (int i = 0; i < rendererCount; ++i) { renderers[i].UpdateMesh(buffer); } buffer.initialized = false; if (buffer.modified) { buffer.modified = false; mesh.Clear(true); mesh.vertices = buffer.vertices; mesh.uv = buffer.uv; mesh.triangles = buffer.triangles; mesh.colors32 = buffer.colors32; mesh.RecalculateBounds(); } lwfObject.materialProperty.AddColor(additionalColorId, additionalColor); meshRenderer.SetPropertyBlock(lwfObject.materialProperty); }
void Start() { property_block = new MaterialPropertyBlock(); property_block.AddMatrix("prev_Object2World", Matrix4x4.identity); mesh_renderer = GetComponent<MeshRenderer>(); mesh_renderer.SetPropertyBlock(property_block); }