curveTo() публичный Метод

public curveTo ( Vector3 pos, Vector3 cPos ) : void
pos Vector3
cPos Vector3
Результат void
Пример #1
0
    void Update()
    {
        //		List<Vector3> pathPos = new List<Vector3>();
        //		for (int n = 0; n < animPath.keyframes.Length; n++){
        //			Vector3 pos = animPath.keyframes[n].position;
        //			pathPos.Add(pos);
        //		}
        //		path = pathPos.ToArray();

        if(path == null || path.Length < 1){ return; }

        Shape sp = new Shape();

        sp.moveTo( path[0] );
        for(int n = 1; n < path.Length-1; n++)
        {
            Vector3 pos = Vector3.Lerp( path[n], path[n+1], 0.5f);
            sp.curveTo( path[n],  pos );
        }

        Vector3 posC = Vector3.Lerp( path[path.Length-2], path[path.Length-1], 0.5f);
        Vector3 posEnd = path[path.Length-1];
        sp.curveTo( posC,  posEnd );

        pathInfo = new PathInfo(sp.commands, sp.data);

        DrawLinePoints();

        //
        Point3D _p3d = pathInfo.lengthToPoint(t_length);
        p3D = new Vector3(_p3d.x, _p3d.y, _p3d.z);
    }
    void Update()
    {
//		List<Vector3> pathPos = new List<Vector3>();
//		for (int n = 0; n < animPath.keyframes.Length; n++){
//			Vector3 pos = animPath.keyframes[n].position;
//			pathPos.Add(pos);
//		}
//		path = pathPos.ToArray();

        if (path == null || path.Length < 1)
        {
            return;
        }

        Shape sp = new Shape();

        sp.moveTo(path[0]);
        for (int n = 1; n < path.Length - 1; n++)
        {
            Vector3 pos = Vector3.Lerp(path[n], path[n + 1], 0.5f);
            sp.curveTo(path[n], pos);
        }

        Vector3 posC   = Vector3.Lerp(path[path.Length - 2], path[path.Length - 1], 0.5f);
        Vector3 posEnd = path[path.Length - 1];

        sp.curveTo(posC, posEnd);

        pathInfo = new PathInfo(sp.commands, sp.data);

        DrawLinePoints();

        //
        Point3D _p3d = pathInfo.lengthToPoint(t_length);

        p3D = new Vector3(_p3d.x, _p3d.y, _p3d.z);
    }