Unity EditorスクリプトのGui.WindowにEvent.ContextClickを追加する方法はありますか?
以下は、 OnGUI()とウィンドウのWindowFunctionの両方から呼び出そうとしたコンテキストメニューメソッドです(以下で「サイト:運がない」と示されているサイトを呼び出します)。メインエディタウィンドウを直接右クリックしない限り、「成功」メッセージを表示できませんでした。作成したGui.Windowsのいずれかを右クリックしても、ContextClickイベントは表示されません。
void OnStateContextMenu(){
Event evt = Event.current;
// Ignore anything but contextclicks
if(evt.type != EventType.ContextClick)return;
Debug.Log("Success");
// Add generic menu at context point
GenericMenu menu = new GenericMenu();
menu.AddItem (new GUIContent ("AddState"),false,AddState,evt.mousePosition);
menu.ShowAsContext ();
evt.Use();
}
そして、呼び出しサイト:
void doWindow(int id){
// OnStateContextMenu(); //site1: no luck
GUI.DragWindow();
}
void OnGUI(){
OnStateContextMenu(); //site2: no luck here either
BeginWindows();
wndRect = GUI.Window(0,wndRect,doWindow,"StateWnd");
EndWindows();
}
アップデート
参考までに、緑の領域は右クリックに反応しますが、赤の領域は反応しません。しかし、私はそれを望んでいます。私が作成した右クリックメニューには、マウスカーソルがウィンドウの1つ(画像の「こんにちは」)内で右クリックした場合にのみ表示したい特定のアクションがあります。注:ボタンは無視してください。右クリックはそのウィンドウ内のどこでも機能しません。