Unity编辑器 - 鼠标悬停在控件上时改变鼠标样式

摘自Unity文档

EditorGUIUtility.AddCursorRect

public static void AddCursorRect(Rect position, MouseCursor mouse);

public static void AddCursorRect(Rect ### position, MouseCursor mouse, int controlID);

Parameters

  • position The rectangle the control should be shown within.

    鼠标悬停的区域

    PS:如果只做拖动控件时,这个范围应该大于控件范围,否则鼠标会因为先移出范围变回普通样式,造成鼠标样式一直在闪
  • mouse The mouse cursor to use.
  • controlID ID of a target control.
// Create a small window that has a color box in it.
// Hovering over it causes a Zoom mouse cursor to appear. (The window is not
// zoomed however.)
using UnityEngine;
using UnityEditor; public class AddCursorRectExample : EditorWindow
{
[MenuItem("Examples/AddCursorRect Example")]
static void addCursorRectExample()
{
AddCursorRectExample window =
EditorWindow.GetWindowWithRect<AddCursorRectExample>(new Rect(0, 0, 180, 80));
window.Show();
} void OnGUI()
{
EditorGUI.DrawRect(new Rect(10, 10, 160, 60), new Color(0.5f, 0.5f, 0.85f));
EditorGUI.DrawRect(new Rect(20, 20, 140, 40), new Color(0.9f, 0.9f, 0.9f));
EditorGUIUtility.AddCursorRect(new Rect(20, 20, 140, 40), MouseCursor.Zoom);
}
}
04-14 05:32