Search Unity

  1. Improved Prefab workflow (includes Nested Prefabs!), 2D isometric Tilemap and more! Get the 2018.3 Beta now.
    Dismiss Notice
  2. The Unity Pro & Visual Studio Professional Bundle gives you the tools you need to develop faster & collaborate more efficiently. Learn more.
    Dismiss Notice
  3. Let us know a bit about your interests, and if you'd like to become more directly involved. Take our survey!
    Dismiss Notice
  4. Improve your Unity skills with a certified instructor in a private, interactive classroom. Watch the overview now.
    Dismiss Notice
  5. Want to see the most recent patch releases? Take a peek at the patch release page.
    Dismiss Notice

Right-click and popup menu in sceneview

Discussion in 'Extensions & OnGUI' started by sstrong, Oct 20, 2016.

  1. sstrong

    sstrong

    Joined:
    Oct 16, 2013
    Posts:
    875
    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:
    20
    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.  
     
    tylearymf and ivaylo5ev like this.
  3. tylearymf

    tylearymf

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