//seems like those calls are not required //mesh.RecalculateBounds(); //mesh.RecalculateNormals(); //expensive call - uncomment only if needed public void updateMesh() { if (vertexCount_ == 0) { return; } mesh_.Clear(true); mesh_.SetVertices(vertices_); mesh_.SetColors(colors_); mesh_.SetUVs(0, uv_); mesh_.subMeshCount = renderCallsCount_; for (uint renderCallIndex = 0; renderCallIndex < renderCallsCount_; ++renderCallIndex) { RenderCall rc = renderCalls_[renderCallIndex]; this.indices_.Clear(); int endIndex = rc.startIndex_ + rc.numIndices_; for (int i = rc.startIndex_; i < endIndex; ++i) { this.indices_.Add(this.allIndices_[i]); } mesh_.SetTriangles(this.indices_, (int)renderCallIndex); } #if UNITY_EDITOR if (mesh_.bounds.center != Vector3.zero) { bounds_.SetMinMax(mesh_.bounds.min, mesh_.bounds.max); bounds_.center = Vector3.zero; mesh_.bounds = bounds_; } #endif }
public void pushRenderCall(ref RenderCall rc) { renderCalls_[renderCallsCount_++] = rc; }