IEnumerator addPointCoroutine() { GetComponent <MeshFilter>().mesh = ribbonMesh.AddPoint(pointerObject.transform.position, pointerObject.transform.rotation); yield return(new WaitForSeconds(.05f)); StartCoroutine(addPointCoroutine()); }
/// <summary> /// Add a single control point. Point and rotations should be in world space. /// </summary> /// <param name="point"></param> /// <param name="rotation"></param> internal void AddControlPoint(Vector3 point, Quaternion rotation) { Vector3 transformedPoint = this.transform.InverseTransformPoint(point); Quaternion transformedRotation = Quaternion.Inverse(this.transform.rotation) * rotation; Points.Add(transformedPoint); Rotations.Add(transformedRotation); Mesh mesh = RibbonMesh.AddPoint(transformedPoint, transformedRotation); UpdateMesh(mesh); }
public void RibbonMesh_AddControlPoint_Performance([NUnit.Framework.Range(9, 99, 10)] int length) { RibbonMesh ribbonMesh = null; Measure.Method(() => { ribbonMesh.AddPoint(new Vector3(length + 1, 0, 0), Quaternion.identity); }) .SetUp(() => { ribbonMesh = new RibbonMesh(Vector3.one); ribbonMesh.GetMesh(GenerateControlPoints(length), GenerateQuaternions(length)); }) .Run(); }