public static void AngleAxis(Vector3 origin, float angle, Vector3 axis, Quaternion startRotation,
                                     BaseVectorDirection builtinDirection = default(BaseVectorDirection), float halfAxisLenght = 3, bool showVectorLabel = !default(bool))
        {
            Vector3 direction = ColorsAndDirections.GetBaseDirection(builtinDirection);

            AngleAxisRaw(origin, angle, axis, startRotation, builtinDirection, halfAxisLenght, direction, showVectorLabel);
        }
        public static void RotateTowards(Vector3 origin, Quaternion from, Quaternion to,
                                         BaseVectorDirection builtinDirection = default(BaseVectorDirection), float lenght = lenght6, bool showVectorLabel = !default(bool))
        {
            Vector3 direction = ColorsAndDirections.GetBaseDirection(builtinDirection);

            Slerp(origin, from, to, builtinDirection, lenght, direction, showVectorLabel, "from", "to");
        }
コード例 #3
0
        /// <summary>
        /// Visualizes the rotate towards with posibility to show one of default axis.
        /// </summary>
        /// <param name="origin">Origin of rotating object</param>
        /// <param name="current">Current direction of rotating object.</param>
        /// <param name="target">Target direction.</param>
        /// <param name="lenght">Lenght of vectors.</param>
        /// <param name="showPlane">If set to <c>true</c> show plane in which are current and target direction are.</param>
        public static void VisualizeRotateTowards(Vector3 origin, Vector3 current, Vector3 target,
                                                  float lenght = 6, bool showPlane = default(bool))
        {
            Vector3 direction = ColorsAndDirections.GetBaseDirection(default(BaseVectorDirection));

            VisualizeRotateTowardsRaw(origin, current, target, default(BaseVectorDirection), lenght, current);
        }
        public static void Slerp(Vector3 origin, Quaternion startRotation, Quaternion endRotation,
                                 BaseVectorDirection builtinDirection = default(BaseVectorDirection),
                                 float lenght = lenght6, bool showVectorLabel = !default(bool))
        {
            Vector3 direction = ColorsAndDirections.GetBaseDirection(builtinDirection);

            InterpolateQuaternions(Quaternion.Slerp, origin, startRotation, endRotation, builtinDirection, lenght, direction, showVectorLabel);
        }
        public static void SlerpUnclamped(Vector3 origin, Quaternion startRotation, Quaternion endRotation,
                                          float howFuther, BaseVectorDirection builtinDirection = default(BaseVectorDirection),
                                          float lenght = lenght6, bool showVectorLabel = !default(bool))
        {
            Vector3 direction = ColorsAndDirections.GetBaseDirection(builtinDirection);

            SlerpUnclampedRaw(origin, startRotation, endRotation, howFuther, builtinDirection, lenght, direction, showVectorLabel);
        }
        public static void Angle(Vector3 origin, Quaternion startRotation, Quaternion endRotation,
                                 BaseVectorDirection builtinDirection = default(BaseVectorDirection), float lenght = lenght6, bool showVectorLabel = !default(bool))
        {
            Vector3 direction = ColorsAndDirections.GetBaseDirection(builtinDirection);

            InterpolateQuaternions(Quaternion.Slerp, origin, startRotation, endRotation, builtinDirection, lenght, direction, showVectorLabel);
            GizmosForVector.ShowLabel(origin, "angle: " + System.Math.Round(Quaternion.Angle(startRotation, endRotation), 0) + "\xB0", new Color32(127, 0, 255, 255));
        }
        public static void FromToRotation(Vector3 origin, Vector3 fromDirection, Vector3 toDirection,
                                          float lenght = lenght6, bool showVectorLabel = !default(bool))
        {
            Quaternion startRotation = Quaternion.FromToRotation(Vector3.right, fromDirection);
            Quaternion endRotation   = Quaternion.FromToRotation(Vector3.right, toDirection);
            //Slerp (origin, startRotation, endRotation, BaseVectorDirection.right, lenght, showVectorLabel);
            Vector3 direction = ColorsAndDirections.GetBaseDirection(BaseVectorDirection.right);

            InterpolateQuaternions(Quaternion.Slerp, origin, startRotation, endRotation, BaseVectorDirection.right, lenght, direction, showVectorLabel);
        }
        public static void ToAngleAxis(Vector3 origin, Quaternion rotation,
                                       BaseVectorDirection builtinDirection = default(BaseVectorDirection), float halfAxisLenght = 3, bool showVectorLabel = !default(bool))
        {
            float   angle;
            Vector3 axis;

            rotation.ToAngleAxis(out angle, out axis);
            Vector3    direction     = ColorsAndDirections.GetBaseDirection(builtinDirection);
            Quaternion startRotation = Quaternion.FromToRotation(Vector3.right, direction);

            AngleAxisRaw(origin, angle, axis, startRotation, builtinDirection, halfAxisLenght, Vector3.right, showVectorLabel);
        }