Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Right-click and popup menu in sceneview

Discussion in 'Immediate Mode GUI (IMGUI)' started by sstrong, Oct 20, 2016.

  1. sstrong

    sstrong

    Joined:
    Oct 16, 2013
    Posts:
    2,229
    Is it possible to display a context sensitive popup menu in the scene view?

    Looked at EventType.ContextClick in OnSceneGUI of a CustomEditor but that doesn't seem to work.
     
  2. mrdsmt

    mrdsmt

    Joined:
    Jul 28, 2012
    Posts:
    21
    Use Generic Menu for that:
    https://docs.unity3d.com/ScriptReference/GenericMenu.html

    Code (CSharp):
    1. using UnityEngine;
    2. using System.Collections;
    3. using UnityEditor;
    4.  
    5. [InitializeOnLoad]
    6. public class SceneGUIGenericMenu : Editor {
    7.  
    8.     static SceneGUIGenericMenu () {
    9.         SceneView.onSceneGUIDelegate += OnSceneGUI;
    10.     }
    11.  
    12.     static void OnSceneGUI (SceneView sceneview) {
    13.         if (Event.current.button == 1)
    14.         {
    15.             if (Event.current.type == EventType.MouseDown)
    16.             {              
    17.                 GenericMenu menu = new GenericMenu();
    18.                 menu.AddItem(new GUIContent("Item 1"), false, Callback, 1);
    19.                 menu.AddItem(new GUIContent("Item 2"), false, Callback, 2);
    20.                 menu.ShowAsContext();
    21.             }
    22.         }
    23.     }
    24.  
    25.     static void Callback (object obj) {
    26.         // Do something
    27.     }
    28. }
    29.  
     
  3. tylearymf

    tylearymf

    Joined:
    Apr 18, 2018
    Posts:
    3
    very nice!!!