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
1
Question by 0tacun · Jan 28, 2014 at 11:56 AM · onguiiflogicencapsulation

Encaplsue function in if statement

Hey guys,

I want to disable the OnGUI() function, when the gameobject is not a Player. Since it stores the stats in this script and is used globally for damagecalculation, I don't want to do two different scripts.

So my question is, how could this be done?

 if(isHuman){
  function OnGUI(){
   //show lifebar
  }
 }

this doesn't work.

But does this?

 if(isHuman)
  OnGUI();
 
 function OnGUI(){
  //show lifebar
 }
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 GameVortex · Jan 28, 2014 at 12:01 PM

If statements needs to be inside of functions. You can not use them to exclude one of unitys event functions from running. You can use them inside of the function to exclude the content from running.

Easiest would be:

 function OnGUI()
 {
    if(isHuman)
    {
        //show lifebar
    }
 }

I would also recommend going through some scripting tutorials: http://unity3d.com/learn/tutorials/modules/beginner/scripting

There is a video there dedicated to if statements as well.

Comment
Add comment · Show 4 · 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 0tacun · Jan 28, 2014 at 12:06 PM 0
Share

thank you for your comment! But I read that calling OnGUI(), even when it is empty, costs performance, which I want to avoid.

avatar image GameVortex · Jan 28, 2014 at 12:13 PM 0
Share

That is negligible compared to using the actual GUI functionality. The performance loss is extremely $$anonymous$$imal.

To avoid the OnGUI from getting called:

Either don't have a script with OnGUI function on the GameObject if it is not a player, or use an alternative custom GUI system ins$$anonymous$$d of Unitys.

avatar image 0tacun · Jan 28, 2014 at 12:16 PM 0
Share

Well, thank you for your help!

avatar image GameVortex · Jan 28, 2014 at 12:21 PM 0
Share

No problem. =)

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

19 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

Related Questions

How do I check if a game object exists? 1 Answer

If Statement within OnGUI not working - any ideas? 4 Answers

GUI.skin not working inside if 2 Answers

rotating minimap compass according to character direction 1 Answer

GUI Placement Question. 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