コード例 #1
0
        public Vector3 GetPointOnCurve(int curveIndex, float t)
        {
            if (curveIndex >= CurveCount)
            {
                return(Vector3.zero);
            }

            // 3 points per curve.
            curveIndex *= 3;

            return(transform.TransformPoint(Bezier.GetPoint(_points[curveIndex], _points[curveIndex + 1], _points[curveIndex + 2], _points[curveIndex + 3], t)));
        }
コード例 #2
0
        public Vector3 GetPoint(float t)
        {
            int curveIndex;

            if (t >= 1f)
            {
                t          = 1f;
                curveIndex = _points.Length - 4;
            }
            else
            {
                t           = Mathf.Clamp01(t) * CurveCount; //Get the time along all curves
                curveIndex  = (int)t;
                t          -= curveIndex;                    //Saturate t
                curveIndex *= 3;                             //3 points per curve
            }

            return(transform.TransformPoint(Bezier.GetPoint(_points[curveIndex], _points[curveIndex + 1], _points[curveIndex + 2], _points[curveIndex + 3], t)));
        }
コード例 #3
0
ファイル: BezierCurve.cs プロジェクト: ThijsMorlion/Bulb
 public Vector3 GetPoint(float t)
 {
     return(transform.TransformPoint(Bezier.GetPoint(_points[0], _points[1], _points[2], _points[3], t)));
 }