public override void BeginRender(LWF lwf) { base.BeginRender(lwf); if (buffer.objects == null || buffer.objects.Length != bitmapCount) { updated = true; updateCount = lwf.updateCount; buffer.Alloc(bitmapCount); } else { buffer.clean = false; buffer.changed = false; if (updateCount != lwf.updateCount) { updated = true; updateCount = lwf.updateCount; } else { updated = false; } } buffer.index = 0; }
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); }