예제 #1
0
        public static EDirection Direction2dFromFloat(this float self, EDirectionAxis priorityAxis)
        {
            if (self > 0f)
            {
                if (priorityAxis == EDirectionAxis.X)
                {
                    return(EDirection.Right);
                }
                if (priorityAxis == EDirectionAxis.Y)
                {
                    return(EDirection.Up);
                }
            }

            if (self < 0f)
            {
                if (priorityAxis == EDirectionAxis.X)
                {
                    return(EDirection.Left);
                }
                if (priorityAxis == EDirectionAxis.Y)
                {
                    return(EDirection.Down);
                }
            }

            return(EDirection.None);
        }
예제 #2
0
        /// <summary>
        /// Get a EDirection from a Vector2.
        /// </summary>
        /// <param name="self"></param>
        /// <param name="priorityAxis">Decides which direction has more priority when axis values
        /// fall between more than one, like x = 1, y = 1 could be either UP or RIGHT.</param>
        /// <returns></returns>
        public static EDirection DirectionFromVector2(Vector2 vector, EDirectionAxis priorityAxis)
        {
            if (priorityAxis == EDirectionAxis.X)
            {
                if (vector.x > 0f)
                {
                    return(EDirection.Right);
                }
                if (vector.x < 0f)
                {
                    return(EDirection.Left);
                }
            }
            else if (priorityAxis == EDirectionAxis.Y)
            {
                if (vector.y > 0f)
                {
                    return(EDirection.Up);
                }
                if (vector.y < 0f)
                {
                    return(EDirection.Down);
                }
            }

            return(EDirection.None);
        }