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 oinkoinkflapflap · Jul 18, 2011 at 05:06 PM · collidertriggervariableontriggerenterif-else

making a variable (var) false when not colliding with a trigger.

hi, i have this script which is meant to have 'OnLand' true when inside the trigger collider (which it does fine) but i want it to be false when not inside the trigger collider. this is my script:

 var OnLand = false;
 
 function OnTriggerEnter (hit : Collider) {
     if(hit.gameObject.tag == "area"){
         OnLand = true;
     }else{
         OnLand = false;
     }
 }

any ideas? thanks for your time...

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
0

Answer by AdamOwen · Jul 18, 2011 at 06:03 PM

Use OnTriggerExit

 var onLand = false;

 function OnTriggerEnter (hit : Collider) {
     if (hit.gameObject.tag == "area") {
         onLand = true;
     }
 }

 function OnTriggerExit (hit : Collider) {
     if (hit.gameObject.tag == "area") {
         onLand = false;
     }
 }

Your current code will only set onLand to false when you hit a trigger that is not tagged "area", otherwise it will continually be set to true even if you're not colliding with it anymore.

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 Dreamblur · Jul 18, 2011 at 06:31 PM 0
Share

You only need:

 function OnTriggerExit()
 {
    onLand = false;
 }

for OnTriggerExit().

avatar image AdamOwen · Jul 18, 2011 at 07:24 PM 0
Share

While that does work, I didn't want to make any assumptions on the usage of triggers in a specific game and not checking the tag when you exit the trigger will not always function as expected.

Imagine two triggers side by side and you are entering them from the left. If the second trigger you enter is the one tagged "area" the variable will be set to true. As you are passing through, as soon as you exit the first trigger the variable will be switched back to false despite still being inside the "area" trigger. This will happen both if the triggers touch eachother, or if they penetrate.

To avoid this I'd suggest using OnTriggerStay to make sure the variable is constantly set.

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

4 People are following this question.

avatar image avatar image avatar image avatar image

Related Questions

Problems with the triggers(not recognized) 1 Answer

Character collider falls away unless "isTrigger" selected 1 Answer

OnTriggerEnter2d() Not Triggering While Animating. 1 Answer

OnTrigger event when colliders are already touching eachother 1 Answer

Layers, parenting and collisions. 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