public static void Test()
        {
            float[] values = { 0f, 1f, 2f, 3f, 4f };

            var interpolation = new CatmullRomSpline(values);

            Debug.Log(interpolation.GetValue(-1f));
            Debug.Log(interpolation.GetValue(3.5f));
            Debug.Log(interpolation.GetValue(4f));
            Debug.Log(interpolation.GetValue(5f));
        }
示例#2
0
        void LateUpdate()
        {
            // Copy rigidbody positions to the line renderer
            LineRenderer lineRenderer = GetComponent <LineRenderer>();

            // No interpolation
            //for (var i = 0; i < fragmentNum; i++)
            //{
            //    renderer.SetPosition(i, fragments[i].transform.position);
            //}

            for (int i = 0; i < fragmentCount; i++)
            {
                Vector3 position = fragments[i].transform.position;
                xPositions[i] = position.x;
                yPositions[i] = position.y;
                zPositions[i] = position.z;
            }

            for (var i = 0; i < (fragmentCount - 1) * splineFactor + 1; i++)
            {
                lineRenderer.SetPosition(i, new Vector3(
                                             splineX.GetValue(i / (float)splineFactor),
                                             splineY.GetValue(i / (float)splineFactor),
                                             splineZ.GetValue(i / (float)splineFactor)));
            }
        }
示例#3
0
        void LateUpdate()
        {
            var lineRenderer = GetComponent <LineRenderer>();

            for (var i = 0; i < fragments.Length; i++)
            {
                var position = fragments[i].transform.position;
                xPositions[i] = position.x;
                yPositions[i] = position.y;
                zPositions[i] = position.z;
            }

            for (var i = 0; i < (fragments.Length - 1) * splineFactor + 1; i++)
            {
                lineRenderer.SetPosition(i, new Vector3(
                                             splineX.GetValue(i / (float)splineFactor),
                                             splineY.GetValue(i / (float)splineFactor),
                                             splineZ.GetValue(i / (float)splineFactor)));
            }
        }