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