void UpdateMesh(AlembicCurves curves) { if (curves.Positions.Length == 0) { return; } GenerateLineMesh(mesh, curves.Positions, curves.CurveOffsets); /* if (prevRenderMethod != renderMethod) * { * mesh.Clear(); * } * * prevRenderMethod = renderMethod; */ /* switch (renderMethod) * { * case RenderMethod.Line: * GenerateLineMesh(mesh, curves.Positions, curves.CurvePointCount); * break; * case RenderMethod.Strip: * GeneratePlaneMesh(mesh, curves.Positions, curves.CurvePointCount, curves.Widths); * break; * default: * throw new ArgumentOutOfRangeException(); * }*/ }
void OnEnable() { curves = GetComponent <AlembicCurves>(); //curves.OnUpdate += UpdateMesh; mesh = new Mesh { hideFlags = HideFlags.DontSave }; GetComponent <MeshFilter>().sharedMesh = mesh; var meshRenderer = GetComponent <MeshRenderer>(); if (meshRenderer.sharedMaterial == null) { meshRenderer.sharedMaterial = GetDefaultMaterial(); } UpdateMesh(curves); }