Bezier.GetPoint C# (CSharp) Method

GetPoint() public method

public GetPoint ( float t ) : Vector3
t float
return Vector3
    public Vector3 GetPoint(float t)
    {
        return transform.TransformPoint(PointOnBezier(p0,p1,p2,p3,t));
    }

Usage Example

コード例 #1
0
        public Section(float startDistance, SplinePoint start, SplinePoint end, int parts, float power)
        {
            this.startDistance = endDistance = startDistance;

            var startPosition = start.transform.localPosition;
            var endPosition   = end.transform.localPosition;
            var startForward  = start.transform.parent.InverseTransformDirection(start.transform.forward);
            var endForward    = end.transform.parent.InverseTransformDirection(end.transform.forward);
            var startUp       = start.transform.parent.InverseTransformDirection(start.transform.up);
            var endUp         = end.transform.parent.InverseTransformDirection(end.transform.up);
            var deltaPower    = Vector3.Distance(startPosition, endPosition) * power;
            var startPower    = start.autoPower ? deltaPower : start.power;
            var endPower      = end.autoPower ? deltaPower : end.power;


            var point = new Point();

            for (int i = 0; i <= parts; i++)
            {
                var t = (float)i / parts;

                var position = Bezier.GetPoint(startPosition, startForward * startPower, endPosition, -endForward * endPower, t);

                endDistance   += i == 0 ? 0 : Vector3.Distance(point.position, position);
                point.distance = endDistance;
                point.forward  = i == 0 ? startForward : (i == parts ? endForward : Vector3.Normalize(position - point.position));
                point.upward   = Vector3.Slerp(startUp, endUp, t);
                point.position = position;

                points.Add(point);
            }
        }
All Usage Examples Of Bezier::GetPoint