Tsuの雑記¯\_(ツ)_/¯

主に製作メモ・備忘録として使用。製作したアプリのリンクもあります。

【Unity】エディター拡張のマウスカーソル一覧【C#】

エディター拡張で使用できるマウスカーソルと、その使用例について。

(Unity 2019.4.17f1)


マウスカーソル一覧表

docs.unity3d.com

上記リンクは Unity の公式リファレンスですが変数の解説に誤りがあるため、正しい組み合わせを以下の表にまとめました。

カーソル MouseCursor Enum
矢印 Arrow 0
矢印とマイナス記号 ArrowMinus 12
矢印とプラス記号 ArrowPlus 11
( 矢印(デフォルト) ) CustomCursor 17
目とテトロミノ FPS 16
人差し指 Link 4
矢印と移動マーク MoveArrow 8
目 Orbit 14
広げた手 Pan 13
左右矢印 ResizeHorizontal 3
左上右下矢印 ResizeUpLeft 7
右上左下矢印 ResizeUpRight 6
上下矢印 ResizeVertical 2
矢印と拡大縮小マーク ScaleArrow 10
矢印と回転マーク RotateArrow 9
矢印とスライドマーク SlideArrow 5
左右矢印 SplitResizeLeftRight 19
上下矢印 SplitResizeUpDown 18
テキストカーソル Text 1
虫眼鏡 Zoom 15

使用例

EditorGUIUtilityクラスのAddCursorRectメソッドで、前述のMouseCursorを指定します。

docs.unity3d.com

上記リンク内のコードは、コピーしてそのまま使用できます。

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

Unity Editor のメニューバーで "Example" → "AddCursorRectExample" を選ぶと、新たなウインドウが開きます。

Unity Editor のカスタムウインドウでカーソルが虫眼鏡になっている画像
指定範囲内でカーソルが虫眼鏡に

以上、エディター拡張のマウスカーソル一覧と使用例についての記事でした。