• 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 blobbs30 · Jan 18, 2013 at 03:46 PM · bulletgunglitchshootreloading

When reloading my gun sounds and the bullets glitch out.

Okay so I have a gun it can aim and shoot, Its automatic (so it shoos when holding down mouse 0 not clicking.) I have a Empty Game Object for the bullet spawn. When i shoot the first mag is fine (30 bullets per mag.)

But the next mag the sound is messed up some bullets are invisible and sometimes it shoots way more than 30 bullets.

Here is a link to a youtube vid of it: http://www.youtube.com/watch?v=Zt4le1G0iYo&feature=youtu.be

I have 3 scripts: Gun (the main one) GunAnimation (For fire/Reloading animation's) Aim (for aiming)

Here are the scripts

Gun:

 var Bullet : Rigidbody;
 var Spawn : Transform;
 var BulletSpeed : float = 1000;
 var ReloadTime : float = 2;
 var AmmoInMag : float = 30;
 var IsFullAuto = true;
 static var AmmoLeft : float;
 static var ReloadTTime : float;
 private var CanFire = true;
 var FireRate = 0.1;
 static var IsReloading = false;
 
 
 function Start () {
     AmmoLeft = AmmoInMag;
     ReloadTTime = ReloadTime;
 }
 
 function Update () {
     if(IsFullAuto == false) {
         if(Input.GetButtonDown("Fire1")){
             if(AmmoLeft > 0) {
                 BroadcastMessage("FireAnim");
                 Fire();
             }
         }
     }
     else{
         if(Input.GetButton("Fire1")){
             if(AmmoLeft > 0) {
                 BroadcastMessage("FireAnim");
                 Fire();
                 }
             }
         }
         
         if(AmmoLeft == 0)
         {
             Reload();
         }
         
         if(AmmoLeft < 0){
             AmmoLeft = 0;
         }
     }
 function Fire () {
     if(CanFire == true && IsReloading == false){        
         var bullet1 : Rigidbody = Instantiate(Bullet,Spawn.position,Spawn.rotation);
         bullet1.AddForce(transform.forward*BulletSpeed);
         CanFire = false;
         yield WaitForSeconds(FireRate);
         CanFire = true;
         AmmoLeft -= 1;
         audio.Play();
     }        
 }
 
 function Reload () {
     CanFire = false;
     IsReloading = true;
     BroadcastMessage("ReloadAnim");
     yield WaitForSeconds(ReloadTime);
     IsReloading = false;
     CanFire = true;
     AmmoLeft = AmmoInMag;
 
 
 }

GunAnimation:

 var Fire : String;
 var Reload : String;
 
 function Start () {
 
 }
 
 function FireAnim () {
     gameObject.animation.Play(Fire);
 
 }
 
 
 function ReloadAnim () {
     gameObject.animation[Reload].speed = (gameObject.animation[Reload].clip.length / Gun.ReloadTTime);
     gameObject.animation.Play(Reload);
 
 }

Aim:

 var HipPose : Vector3;
 var AimPose : Vector3;
 private var MainCam : GameObject;
 private var WeapCam : GameObject;
 
 
 function Start () {
     transform.localPosition = HipPose;
     MainCam = GameObject.FindGameObjectWithTag("MainCamera");
     WeapCam = GameObject.FindGameObjectWithTag("WeaponCamera");
 
 }
 
 function Update () {
     if(Input.GetButton("Fire2")){
         transform.localPosition = AimPose;
         MainCam.camera.fieldOfView = 50;
         WeapCam.camera.fieldOfView = 50;
     }
     
     if(!Input.GetButton("Fire2")){
         transform.localPosition = HipPose;
         MainCam.camera.fieldOfView = 60;
         WeapCam.camera.fieldOfView = 60;
     }
 
 }
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

Answer by Vonni · Jan 18, 2013 at 06:06 PM

Just glancing over it, it looks like:

 yield WaitForSeconds(FireRate);

inside your fire function could be giving you some trouble! It doesnt count down ammo before after the fire rate. But I would try putting the delay somewhere else, so that you can't shoot another bullet until the firerate is done.

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 blobbs30 · Jan 18, 2013 at 07:33 PM

@Vonni Thanks as I'm a complete noob at unity how do i do that?

Thanks ill look take a look tomorrow.

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

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

If you’re new to Unity Answers, please check our User Guide to help you navigate through our website and refer to our FAQ for more information.

Before posting, make sure to check out our Knowledge Base for commonly asked Unity questions.

Check our Moderator Guidelines if you’re a new moderator and want to work together in an effort to improve Unity Answers and support our users.

Follow this Question

Answers Answers and Comments

10 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

Related Questions

How to make a gun shoot? 2 Answers

Shooting. Bullet floats and sprays 1 Answer

Troubles With A Shoot Script 1 Answer

Bullet Drop With Raycast 4 Answers

how to make bullets apply damage 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