Search Unity

  1. Get all the Unite Berlin 2018 news on the blog.
    Dismiss Notice
  2. Unity 2018.2 has arrived! Read about it here.
    Dismiss Notice
  3. We're looking for your feedback on the platforms you use and how you use them. Let us know!
    Dismiss Notice
  4. The Unity Pro & Visual Studio Professional Bundle gives you the tools you need to develop faster & collaborate more efficiently. Learn more.
    Dismiss Notice
  5. Improve your Unity skills with a certified instructor in a private, interactive classroom. Learn more.
    Dismiss Notice
  6. ARCore is out of developer preview! Read about it here.
    Dismiss Notice
  7. Magic Leap’s Lumin SDK Technical Preview for Unity lets you get started creating content for Magic Leap One™. Find more information on our blog!
    Dismiss Notice
  8. Want to see the most recent patch releases? Take a peek at the patch release page.
    Dismiss Notice

Property drawer enum

Discussion in 'Extensions & OnGUI' started by MaskedMouse, Jul 22, 2018.

  1. MaskedMouse

    MaskedMouse

    Joined:
    Jul 8, 2014
    Posts:
    226
    I'm trying to re-create the property drawer that Ryan used in his talk Unite Austin 2017 with Scriptable Objects.

    So basically this is a sort of enum popup with a field behind the chosen enum.
    But if I do an EditorGUI.EnumPopup it will show up as a bar with the enum name in it instead of a menu dropdown kind of like thing as shown in the image below.
    How do I re-create this kind of menu dropdown?

    Dropdown.png


    Edit: Ah right, found the solution apparently he had a github source up

    https://github.com/roboryantron/Uni...Code/Variables/Editor/FloatReferenceDrawer.cs

    The specific thing I was looking for:
    Code (CSharp):
    1. popupStyle = new GUIStyle(GUI.skin.GetStyle("PaneOptions"));
    2. popupStyle.imagePosition = ImagePosition.ImageOnly;
     
    Last edited: Jul 25, 2018
  2. Hosnkobf

    Hosnkobf

    Joined:
    Aug 23, 2016
    Posts:
    344
    To answer the actual question properly: Pass a different GUIStyle (and maybe also GUILayout.Width(x) as GUILayoutOption).