/*----------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); }
/// <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"); } }