コード例 #1
0
    IEnumerator addPointCoroutine()
    {
        GetComponent <MeshFilter>().mesh = ribbonMesh.AddPoint(pointerObject.transform.position, pointerObject.transform.rotation);
        yield return(new WaitForSeconds(.05f));

        StartCoroutine(addPointCoroutine());
    }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
        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();
        }