• 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 cargo1983 · Oct 21, 2014 at 03:07 AM · javascriptbooleannot workinggundraw

Simple gun draw script not working

I'm writing a simple script for my FPS exercise so my character draws his weapon by clicking the right mouse button, and then puts it away with another click of the right mouse button. I have the first part working, but haven't managed to get the character to put away the weapon again.

The Javascript code I'm using is very simple, and linked to an animator.

 #pragma strict
 
 var Gun : GameObject;
 var GunDrawn = false;
 
 
 function Start () {}
 
 function Update () {
 
     if(GunDrawn && Input.GetMouseButtonDown(1)) {
         
         Gun.GetComponent(Animator).SetBool("GunOut", false);
         Gun.GetComponent(AudioSource).enabled = false;
         GunDrawn = false;
         
         }
         
     if(!GunDrawn && Input.GetMouseButtonDown(1)){
 
         Gun.GetComponent(Animator).SetBool("GunOut", true);
         Gun.GetComponent(AudioSource).enabled = true;
         GunDrawn = true;
         
         }
 
 }

When I run the game and right-click the correct animation plays and I can see the inspector marks the variable GunDrawn as "true", but when I right-click again nothing happens. Is this an issue with formatting? I'm sure there's a simple explanation and any help would be much appreciated.

Thanks!

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
Best Answer

Answer by Phantomized · Oct 21, 2014 at 08:51 AM

It's because when you set the gunDrawn to "false" in the first conditional statement, you allow it to jump right into the conditional statement after that where it will be set as true again instantly. This often happens when the same input will do different things depending on the situation. An easy way around this is to use a boolean like:

 var pressed : boolean = false;

and then in the conditional statements ask for a condition such as

  if(!pressed && GunDrawn && Input.GetMouseButtonDown(1)) {
      pressed = true;
      etcera...

and then at the end of the update method:

 pressed = false;

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 cargo1983 · Oct 21, 2014 at 09:34 AM 0
Share

Thank you very much - that worked well.

avatar image Phantomized · Oct 21, 2014 at 09:51 AM 0
Share

You're welcome. :) If you are satisfied with the answer, please mark it as accepted, so people browsing the question queue can visually see that you don't need help with this topic anymore. :)

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.

Welcome to Unity Answers

The best place to ask and answer questions about development with Unity.

To help users navigate the site we have posted a site navigation guide.

If you are a new user to Unity Answers, check out our FAQ for more information.

Make sure to check out our Knowledge Base for commonly asked Unity questions.

If you are a moderator, see our Moderator Guidelines page.

We are making improvements to UA, see the list of changes.



Follow this Question

Answers Answers and Comments

3 People are following this question.

avatar image avatar image avatar image

Related Questions

Some issues with weapon switching and reloading? 2 Answers

crosshair scrip not working 1 Answer

Spawn player if player dead 2 Answers

Script Doesnt work? 0 Answers

musket gun script is not working 3 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