Exemplo n.º 1
0
    public Quaternion RotationAtDistance(float distance)
    {
        Line      nextLine;
        DeltaLine deltaLine = CurrentDeltaLine(distance, out nextLine);

        if (!deltaLine.valid)
        {
            return(Quaternion.identity);
        }

        if (nextLine == null)
        {
            return(deltaLine.DeltaRotation());
        }

        float      normalizedDistance = deltaLine.deltaDistance / deltaLine.line.distance;
        Quaternion rot = Quaternion.Slerp(deltaLine.line.lookRotation, nextLine.lookRotation, normalizedDistance);

        return(rot);
    }
Exemplo n.º 2
0
    public Vector3 PositionAtDistance(float distance)
    {
        Line      nextLine;
        DeltaLine deltaLine = CurrentDeltaLine(distance, out nextLine);

        if (!deltaLine.valid)
        {
            return(Vector3.zero);
        }

        if (distance <= 0.0f)
        {
            return(deltaLine.line.start);
        }

        if (distance >= this.Distance)
        {
            return(deltaLine.line.end);
        }

        return(deltaLine.DeltaPosition());
    }