概要
エディター拡張時に右クリックのメニューをやってみました。
新しいUIElementsとGUI システム (IMGUI)の両方のパターンがあります。
UIElementsの場合
// ラベルを右クリックした時の動作
VisualElement label = new Label("Hello World! From C#");
label.RegisterCallback<MouseDownEvent>((evt) =>
{
if (Event.current.button == 0)
{
// 左クリック
}
else if (Event.current.button == 1)
{
GenericMenu menu = new GenericMenu();
menu.AddItem(new GUIContent("右クリックメニュー"), false, () => Debug.Log("右クリックメニュー"));
menu.ShowAsContext();
}
});
UI システム (IMGUI)の場合
if(GUILayout.Button("ボタン"))
{
if (Event.current.button == 0)
{
// 左クリック
}
else if (Event.current.button == 1)
{
// 右クリック
GenericMenu menu = new GenericMenu();
menu.AddItem(new GUIContent("右クリックメニュー"), false, () => Debug.Log("右クリックメニュー"));
menu.ShowAsContext();
}
}
終わりに
どちらにしても判定の後にEvent.current.button
で分けるみたい。