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 Rick74 · Jul 29, 2013 at 09:10 PM · javascriptontriggerenterontriggerexit

OnTriggerEnter/Exit?

Hey guys, I'm trying to make a detection switch if an enemy rolls over a collision box. I just need it to toggle a switch. Right now here's what I have;

 var alerted :   boolean = false;
 
 
 function OnTriggerEnter ( other : Collider )
 {
     if ( other.gameObject.tag == "alien" )
     {
         alerted = true;
     }
     else
     {
         alerted = false;
     }
 }
 

Now it toggles the switch to "on" alright, but if the alien moves off the trigger or is destroyed, the switch will not shut off. Am I missing something here?

I've also tried;

 var alerted :   boolean = false;
 
 
 function OnTriggerEnter ( other : Collider )
 {
     if ( other.gameObject.tag == "alien" )
     {
         alerted = true;
     }
 }
 
 function OnTriggerExit ( other : Collider )
 {
     if ( other.gameObject.tag == "alien" )
     {
         alerted = false;
     }
 }

both methods had the same result, so I'm clearly missing something here. Thanks for the help!

Comment
Add comment · Show 1
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 VolureDarkAngel · Jul 30, 2013 at 06:55 PM 0
Share

i performed the exact same test. And achieved the same results.

1 Reply

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

Answer by gardian06 · Jul 30, 2013 at 05:44 PM

the code posted in the second box works

test steps:

  • created unityScript file pasted code (adding Debug.Log("alerted" + alerted); into the Update function)

  • create a 10x10x10 cube changed its collider to a trigger and added script

  • created 1x1x1 cube gave it the "alien" tag, and a RigidBody (ignoring gravity)

  • manually moved the cube into and out of the trigger

using this test while the cube was inside the trigger the alerted variable was true, and when outside of the trigger the variable was false. if the cube was disabled while inside the variable stayed true.

your only edge case would be if the object disappeared inside (OnTriggerEnter only detects the first frame of collision, and OnTriggerExit only detects the frame after the collision has ended)

immediate solution I would suggest checking to see what all in your scene has this tag "alien" to make sure that nothing else is entering this zone.

suggested solution going forward switch to OnTriggerStay, and create an ArrayList. every frame in Update clear the list, and then in OnTriggerStay add the object to the list. if there is anything in the list then alerted = true }else{ alerted = false }

Comment
Add comment · Show 1 · 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 Rick74 · Aug 01, 2013 at 12:13 AM 0
Share

Thanks to everyone who took the trouble to help me out here, I appreciate it greatly. I will indeed take those steps gardian06, thanks again!

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

17 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

Related Questions

Trigger area around player. 1 Answer

OnTriggerEnter only working once. 0 Answers

OnTriggerEnter Question 0 Answers

OnTriggerExit overwrites OnTriggerEnter 2 Answers

OnTriggerExit happens too soon! 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