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 /
avatar image
0
Question by Escapable · Jun 30, 2011 at 08:29 PM · guibooleanaction

Appearence of the GUI element after a certain action

I need a functor inside my OnGUI() function which draws a GUI.Button after an input.

So I try to do this

 void OnGUI()
 {
     System.Action Some = () =>
     {
         if (Input.GetKeyDown(KeyCode.Q))
             GUI.Button(new Rect(0, 0, 100, 20), "Done");
     };

     Some();
 }

Nothing happens but when I use that

 void OnGUI()
 {
     System.Action Some = () =>
     {
         GUI.Button(new Rect(0, 0, 100, 20), "Done");
     };

     Some();
 }

GUI.Button appears, so the functor works well. But it doesn't fit my needs. So I figured out that problem doing brute-force

 bool isSome = false;
 void OnGUI()
 {
     System.Action Some = () =>
     {
         if (Input.GetKeyDown(KeyCode.Q))
             isSome = true;

         if(isSome)
             GUI.Button(new Rect(0, 0, 100, 20), "Done");
     };

     Some();
 }

It seems to me not good at all.

Can someone explain me why doesn't GUI element appear after an action (without bool flag)?

Thanks in advance!

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

Answer by benni05 · Jun 30, 2011 at 08:39 PM

The OnGUI is called once per frame and DOES render your button even in your first code example IF you hit the key. BUT you can't see it really because it is displayed just during that particular frame of the key hit. That's why in your second example where you omitted the keypress it is displayed all the time. In other words, the GUI call that renders the button is not an on/off thing but needs to be called every frame in case you want to display the element.

Ben

Comment
Add comment · 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

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

3 People are following this question.

avatar image avatar image avatar image

Related Questions

Change GUI element texture in C# when a boolean changes. 0 Answers

Disable script on 2. object by boolean from 1. object. 0 Answers

C# Boolean Doesn't Change Value 1 Answer

Screen.showCursor = !Screen.showCursor; Not working 2 Answers

GUI Box appear when you are close to something? 1 Answer


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