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

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

猜你喜欢

转载自blog.csdn.net/ltycloud/article/details/79368043