private static GetScaleCursor ( Vector2 direction ) : MouseCursor | ||
direction | Vector2 | |
리턴 | MouseCursor |
private static MouseCursor GetScaleCursor(Vector2 direction)
{
float num = Mathf.Atan2(direction.x, direction.y) * 57.29578f;
if (num < 0f)
{
num = 360f + num;
}
if (num >= 27.5f)
{
if (num < 72.5f)
{
return MouseCursor.ResizeUpRight;
}
if (num < 117.5f)
{
return MouseCursor.ResizeHorizontal;
}
if (num < 162.5f)
{
return MouseCursor.ResizeUpLeft;
}
if (num < 207.5f)
{
return MouseCursor.ResizeVertical;
}
if (num < 252.5f)
{
return MouseCursor.ResizeUpRight;
}
if (num < 297.5f)
{
return MouseCursor.ResizeHorizontal;
}
if (num < 342.5f)
{
return MouseCursor.ResizeUpLeft;
}
}
return MouseCursor.ResizeVertical;
}
private static void HandleDirectionalCursor(Vector3 handlePosition, Vector3 handlePlaneNormal, Vector3 direction) { Vector2 mousePosition = Event.current.mousePosition; Plane plane = new Plane(handlePlaneNormal, handlePosition); Vector3 worldPos; if (RectHandles.RaycastGUIPointToWorldHit(mousePosition, plane, out worldPos)) { Vector2 direction2 = RectHandles.WorldToScreenSpaceDir(worldPos, direction); Rect position = new Rect(mousePosition.x - 100f, mousePosition.y - 100f, 200f, 200f); EditorGUIUtility.AddCursorRect(position, RectHandles.GetScaleCursor(direction2)); } }