Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
  • Help Room /
avatar image
0
Question by BlackPotionHQ · Apr 17, 2020 at 09:27 AM · editorunityeditoreditor-scriptingcustom editordropdown

How to make a dropdown in Unity Editor with list from another Monobehaviour Script

I'm trying to simplify our game by making great Custom Editor object in Unity

In our game we have a list of UI interface that we set in Unity Editor like that : alt text

When we want to show a specifique page we tell in the editor by the name of the page, like that :

alt text

Everything works well, but sometimes we forget to add the page in our UIManager and we loose time.

I was thinking to display a dropdown in Editor of all our pageName set in the UiManager

so I have created a Page class with a pageName inside, I saw that we need to make it derive from Monobehaviour or ScriptableObject to be shown in the onClick of a button And then I created a Custom Editor c# file to show all pages.

For the moment I got that

UIManager.cs

 [System.Serializable]
 public class Page : ScriptableObject
 {
     [SerializeField] public string pageName;
 }

 public class UIManager : MonoBehaviour {
 
     [SerializeField]
     public PageController[] pages;
 
     public void ShowPage(string name)
     {
         foreach (PageController tmp in pages)
         {
             if (tmp.name == name)
             {
                 tmp.Show();
             }
         }
     }
 
     public void ShowPage(Page page)
     {
         ShowPage(page.pageName);
     }
 }


PageEditor.cs

 [CustomEditor(typeof(Page))]
 public class PageEditor : Editor
 {
     PageController[] pages;
     string[] pageName;
     int index = 0;
 
     void OnEnable()
     {
         pages = Link.to.uiManager.pages;
         pageName = new string[pages.Length];
 
         for (int i = 0; i < pages.Length; i++)
         {
             pageName[i] = pages[i].name;
         }
     }
 
 
     public override void OnInspectorGUI()
     {
         DrawDefaultInspector();
         index = EditorGUILayout.Popup(index, pageName);
         EditorUtility.SetDirty(target);
     }
 }

Link.cs

 public class Link : MonoBehaviour
 {
     public static Link to;
 
     [Header("Managers")]
     public GameManager gameManager;
     public UIManager uiManager;
 
    void Awake()
     {
         to = this;
     }
 }

But nothing is shown. On the OnClick it show None (Page) like I have to drag and drop a Page object or something like that

My Static Link is not set yet (because it's on Awake) so I also tried to get the pages like that

         UIManager uiManager = GameObject.Find("UIManager").GetComponent<UIManager>();
 
         pages = uiManager.pages;

But same result... It there a way to do what I want ?

unity-screenshot.png (14.4 kB)
unity-screenshot1.png (5.7 kB)
Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

0 Replies

· Add your reply
  • Sort: 

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

249 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Unity PERSISTENT error: Assertion failed on expression: 'VCCache::instance != NULL' unity 0 Answers

Editor - Selecting multiple active objects in project view 0 Answers

DrawGizmo - Accessing Editor script in DrawGizmo 1 Answer

Property Drawer ArgumentException 1 Answer

Top Notch Specs, Poor Performance on the Editor 0 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges