示例#1
0
        /*----------Functions----------*/
        //PUBLIC

        /// <summary>
        /// Get a unit vector from the supplied axis direction
        /// </summary>
        /// <param name="axisDirection">The axis direction that will be converted into a directional vector</param>
        /// <returns>Returns a local space direction based on the axis direction</returns>
        public static Vector3 ToUnitVector(this EAxisDirection axisDirection)
        {
            Vector3 dir = Vector3.zero;

            dir[Mathf.Abs((int)axisDirection) - 1] = Mathf.Sign((int)axisDirection);
            return(dir);
        }
示例#2
0
        /// <summary>
        /// Provide the functionality to retrieve directional axis, according to standard directional enumeration
        /// </summary>
        /// <param name="transform">The transform that is being evaluated</param>
        /// <param name="direction">An <see cref="EAxisDirections"/> value defining the axis direction to retrieve</param>
        /// <returns>Returns the axis direction of the specified enumeration</returns>
        public static Vector3 GetAxis(this Transform transform, EAxisDirection direction)
        {
            switch (direction)
            {
            //Defined
            case EAxisDirection.Left:    return(-transform.right);

            case EAxisDirection.Right:   return(transform.right);

            case EAxisDirection.Down:    return(-transform.up);

            case EAxisDirection.Up:      return(transform.up);

            case EAxisDirection.Back:    return(-transform.forward);

            case EAxisDirection.Forward: return(transform.forward);

            //Undefined
            default: throw new ArgumentException("Can't get Transform Axis for EAxisDirection Value '" + (int)direction + "'. Use a valid direction");
            }
        }