Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 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 /
avatar image
0
Question by Gilead7 · Jun 23, 2015 at 07:40 PM · c#editorfunctions

Editor Nightmare!

I'm trying to create a custom editor, but forwhatever reason, the functions aren't displaying. What am I doing wrong??

 using UnityEngine;
 using UnityEditor;
 
 public class TestEditor : EditorWindow
 {
     
     //TestDatabase tdb;
     bool ShowNewItemDetails=false;
 
     const string DATABASE_PATH = @"Assets/" +DATABASE_FOLDER_NAME + "/" + DATABASE_FILE_NAME;
     const string DATABASE_FOLDER_NAME=@"Databases";
     const string DATABASE_FILE_NAME=@"TestDatabase.asset";
     
     [MenuItem ("True Calling Tools/Test Database")]
     static void TestDatabase() 
     {
         
         TestEditor window = (TestEditor)EditorWindow.GetWindow (typeof (TestEditor));
         window.minSize= new Vector2(400,300);
         window.titleContent.text="Test Database";
         
     }
 
     enum DisplayState
     {
         NONE,
         GENERALDETAILS,
         WEAPONDETAILS
     };
 
     DisplayState state=DisplayState.NONE;
 
 
     void MakeGeneralItem()
     {
         state=DisplayState.GENERALDETAILS;
         GUILayout.Label("Make me a General item");
 
 
     }
 
 
     void GeneralTab()
     {
         if(GUILayout.Button("General Items"))
         {
             ShowNewItemDetails=true;
             DetailView();
         }
     }
     
     void OnGUI()
     {
         //just call all the functions
         TopBar();
         EditorGUILayout.BeginHorizontal();
         ListView();
         //DetailView();
         EditorGUILayout.EndHorizontal();
         BottomBar();
     }
 
 
     void TopBar()
     {
         GUILayout.BeginHorizontal("Box", GUILayout.ExpandWidth(true));
         GeneralTab();
 //        GUILayout.Button("Melee Weapons");
 //        GUILayout.Button("Missile Weapons");
 //        GUILayout.Button("Armor");
 //        GUILayout.Button("Consumable");
 //        GUILayout.Button("Jewelry");
 //        GUILayout.Button("Packs");
 //        GUILayout.Button("Tomes");
         GUILayout.EndHorizontal();
 
     }
 
     void BottomBar()
     {
         GUILayout.Label("This is the bottom bar");
     }
 
     void ListView()
     {
         EditorGUILayout.BeginVertical("Box", GUILayout.Width(200), GUILayout.ExpandHeight(true));
         GUILayout.Label("Give us the list");
         EditorGUILayout.EndVertical();
     }
 
     void DetailView()
     {
 
         GUILayout.BeginHorizontal("Box", GUILayout.ExpandWidth(true));
         GUILayout.BeginVertical(GUILayout.ExpandHeight(true));
         GUILayout.Label("State: " + state);
         GUILayout.Label("Details, I want details.");
         switch(state)
         {
         case DisplayState.GENERALDETAILS:
             if(ShowNewItemDetails)
                 MakeGeneralItem();
             break;
         default:
             break;
         }
         GUILayout.EndHorizontal();
         GUILayout.EndVertical();
     }
 
 
 
 }

It's supposed to let you click on the general item tab and show the form for that new item. The function is getting called, but nothing is displaying. Thanks for the help!

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

1 Reply

· Add your reply
  • Sort: 
avatar image
1
Best Answer

Answer by Cherno · Jun 23, 2015 at 10:00 PM

The window does show the form. Problem is, you are only calling the form showing function once, so it is once drawn for one frame (if at all). In OnGUI, check if the showForm bool is true, and if yes, call the Show Form function. This will make OnGUI draw the form continuously. If you want to hide the form again, just set the bool to false again.

 void OnGUI()
      {
          //just call all the functions
          TopBar();
          EditorGUILayout.BeginHorizontal();
          ListView();
          if(ShowNewItemDetails == true) {
               DetailView();
          }
          EditorGUILayout.EndHorizontal();
          BottomBar();
          
      }
Comment
Add comment · Show 2 · Share
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
avatar image Gilead7 · Jun 23, 2015 at 10:50 PM 0
Share

Thanks! I've been pulling my hair out over this one!

avatar image Cherno · Jun 23, 2015 at 11:09 PM 0
Share

Glad to be of help. Feel free to mark the answer as accepted to help others.

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

22 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

Related Questions

Initialising List array for use in a custom Editor 1 Answer

Multiple Cars not working 1 Answer

Distribute terrain in zones 3 Answers

Getting GUI.skin in editor script changed entire Unity Editor GUI 1 Answer

Reference a script from Editor folder 2 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