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 /
This post has been wikified, any user with enough reputation can edit it.
avatar image
0
Question by ChrisTylr · Oct 02, 2013 at 04:59 PM · collisionifmessagenested

Can't access nested if...

Basically what i'm trying to do is create a collision volume, and when the player enters that volume a message is displayed 'press right mouse button to use weapon' and if they press the right mouse button they can use the weapon.

But before i write the code for the weapon im testing to see if im getting in the nested if, and im not...

I want the message to display, regardless of any buttons pressed, so i dont want to condition the if statement with a (collision + a button press)....

This is my code:-

 function OnTriggerEnter(collision:Collision)
 {
 
     if (collision != 'Player')
     {
         displayMessage = true;
         yield WaitForSeconds (displayTime);
         displayMessage = false;
         //Debug.Log("This is triggered");
         
         if (Input.GetMouseButtonDown(1))
         {
             Debug.Log('This will tell me if i get inside the nested if');
         }
     }


EDIT:

Ok so i moved :

 if (Input.GetMouseButton(1))
 {
     testPlayerCollision = true;
     Debug.Log('This will tell me if i get inside the nested if');
 }

outside of the first if statement, so i now have two if statements in the function, and they both work, but the second if waits until the first if is complete before it will work.

I assume this is down to the 'yield WaitForSeconds (displayTime);' but is there a way to still have my message showing for x amount of time and still triggering the second function?

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

2 Replies

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

Answer by ChrisTylr · Oct 02, 2013 at 05:45 PM

never mind, solved it....

i just switched the if statements round so the message was under the mouse click, works fine now.

Thanks for trying to help :)

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
avatar image
0

Answer by DaveA · Oct 02, 2013 at 05:01 PM

Because both events would have to happen at the same time. Use Input.GetMouseButton instead, as a first cut. You may need to resort to setting some boolean state variables though. Or look for the mouse down in OnTriggerStay

Comment
Add comment · Show 3 · 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 ChrisTylr · Oct 02, 2013 at 05:09 PM 0
Share

Ok so i tried Input.Get$$anonymous$$ouseButton and that didn't make it better or worse, ive also changed Collision to Collider after an error message saying it had to be that.

As for setting bool states, what exactly would i be putting into a bool, and wouldn't that just add another condition to the if statement.

avatar image DaveA · Oct 02, 2013 at 05:11 PM 0
Share

$$anonymous$$ake an OnTriggerStay function and move this code into it

avatar image ChrisTylr · Oct 02, 2013 at 05:12 PM 0
Share

Ive just changed my current function to OnTriggerStay and still nor better or worse

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

15 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

Related Questions

Nested if statement only runs once. I don't know why. 1 Answer

Odd collision behaviour with If/while statement 1 Answer

Rigidbody Trigger Collider vs. Static Collider no OnTriggerEnter message 1 Answer

Detect collision if 1 Answer

How to remove script on collision? 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