• 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
Question by $$anonymous$$ · May 08, 2019 at 06:14 PM · scripting problemdamagegun scriptguns

How to change the damage my gun does?

Hello, I would like to know how to change the damage of my gun according to a public int? If anyone can help please comment down bellow here is the gun script.

 using UnityEngine;
 using System.Collections;
 
 
 public class Gun1 : MonoBehaviour
 {
     private const int V = 3;
 
     //Decal
     public GameObject decalHit;
   public float projectileDestroyTimer = 5f;
 
 
 
 
   //Ámmo
   public int maxAmmoTotal = 30; // Max ammo to carry Example: 30
   public int maxAmmoInClipTotal = 5; // Max ammo total to be able to reload Example: 5
   public int curAmmo = 30; // Current reloadable ammo Example: 30
   public int ammoInClip = 8; // Current ammo in clip Example: 5
   private bool isReloading = false;
 
 
 
 
   //Animation
   public string fireAnimation; //Shoot animation
   public string clipEmptyAnim; //Clip empty animation
   public string reloadAnimation; //Reload animation
   public float reloadTime = 1f; // How long it takes to reload
   public Animator reloadAnimations;
   public Animator ClipEmptyAnimations;
 
 
 
 
   //GameObjects
   public GameObject weapon; //Needed for aiming
   public ParticleSystem muzzleflash;
   public Animator FireAnimation;
   public AudioSource GunSounds;
 
 
 
 
   //Raycast
   private RaycastHit rayHit;
   public float shootDistance = 200f;
 
 
 
 
   //Recoil
   private float defaultRecoil = 50f;
   public float recoil = 50f;
   public float recoilAiming = 10f;
 
 
   //Aim
   public Vector3 aimPos = Vector3.zero;
   private Vector3 defaultPos = Vector3.zero;
   public float smoothTime; //How long it takes to get to the aiming position
   private Vector3 dampVelocity;
   private bool aiming = false;
 
 
   //Audio
   private AudioSource audioSource; //Audio source
   public AudioClip fireSound; //Sound when shooting
   public AudioSource clipEmptySound; //Sound when clip is empty
   public AudioSource reloadSound; //Sound when reloading
 
   //Weapon
   public int hitDamage = 13;
   float LastTimeShot;
   public float TimeBetweenShots = 1;
   public float fireRate = 20f;
 
   private float nextTimeToFire = 0f;
 
 
   //Only for testing
   int removedAmmoRecently; //Only for testing
 
 
   void Start()
   {
     defaultPos = weapon.transform.localPosition;
     defaultRecoil = recoil;
     audioSource = GetComponent<AudioSource>();
   }
 
 
   void Update()
   {
     AimDownSight();
 
      if (Input.GetButton("Fire1") && Time.time >=nextTimeToFire)
         {
             nextTimeToFire = Time.time + 1f / fireRate;
             Shoot();
       
     }
     if(Input.GetButtonDown("Fire2") && !isReloading)
     {
       aiming = !aiming;
     }
 
 
     if (Input.GetKeyDown(KeyCode.R) && !isReloading)
     {
       StartCoroutine("Reload");
     }
   }
 
 
   void Shoot()
   {
     if(ammoInClip != 0 && !isReloading)
     {
       PlaySound(fireSound);
       GunSounds.Play();
       muzzleflash.Play();
       PlayAnimation(fireAnimation);
       GetComponent<Animator>().Play("FireAnimation");
       ammoInClip--;
       Ray ray = Camera.main.ScreenPointToRay(new Vector3(Screen.width/2f + Random.Range(-recoil, recoil), Screen.height/2f + Random.Range(-recoil, recoil), 0f));
       if (Physics.Raycast(ray, out rayHit, shootDistance))
       {
         GameObject decalClone = (GameObject)Instantiate(decalHit, rayHit.point, Quaternion.LookRotation(rayHit.normal, Vector3.forward));
         Destroy(decalClone, projectileDestroyTimer);
 
         DoDamage(rayHit);
       }
     }
     else{
       clipEmptySound.Play();
       GetComponent<Animator>().Play("ClipEmptyAnimation");
     }
     Debug.Log("Ammo: " + ammoInClip + "/" + curAmmo);
   }
 
 
   void DoDamage(RaycastHit hit)
   {
     if(hit.transform.tag == "Enemy")
     {
       if(hit.transform.GetComponent<EnemyHealth>()) //You can change EnemyHealth, to the name of the script that contains the health of the enemy
       {
         hit.transform.SendMessage("ApplyDamage", hitDamage, SendMessageOptions.DontRequireReceiver);
       }
       Debug.Log(hit.transform.name + " has been hit");
     }
   }
 
 
   IEnumerator Reload()
   {
     //If ammoInClip example 5 is equal or greater than  0 and ammoInClip(5) is lower than maxAmmoInClipTotal(The max amount of ammo that can be in a clip) and curAmmo(how much ammo you have like 5/30) is greater than 0
     if (ammoInClip >= 0 && ammoInClip < maxAmmoInClipTotal && curAmmo > 0)
     {
       isReloading = true;
       reloadSound.Play();
       GetComponent<Animator>().Play("reloadAnimations");
       yield return new WaitForSeconds(reloadTime);
       removedAmmoRecently = 0; //You can remove this line, it's only for testing.
       for (int i = 0; i < maxAmmoInClipTotal; i++)
       {
         if (ammoInClip == maxAmmoInClipTotal || curAmmo <= 0)
         {
           break;
         }
         else
         {
           ammoInClip++;
           curAmmo--;
           removedAmmoRecently++; //You can remove this line, it's only for testing. | To check how much ammo has been removed
         }
       }
       isReloading = false;
       Debug.Log("Removed " + removedAmmoRecently + " " + "ammo from pocket ammo. Ammo: " + ammoInClip + "/" + curAmmo); //You can remove this line, it's only for testing. | Prints out how much ammo that has been removed, ammo you have in clip, and how much ammo that is left
     }
     else
     {
       yield break;
     }
   }
 
 
   void PlayAnimation(string anim)
   {
     if (anim != "")
     {
       weapon.GetComponent<Animation>().Play(anim);
     }
   }
 
 
   void PlaySound(AudioClip clip)
   {
     if (clip != null)
     {
       audioSource.PlayOneShot(clip);
     }
   }
 
 
   void AimDownSight()
   {
     if(aiming && weapon.transform.localPosition.normalized != aimPos.normalized)
     {
       weapon.transform.localPosition = Vector3.SmoothDamp (weapon.transform.localPosition, aimPos, ref dampVelocity, smoothTime);
       Debug.Log ("Aiming");
       recoil = recoilAiming;
     }
 
 
     if(!aiming && weapon.transform.localPosition.normalized != defaultPos.normalized)
     {
       weapon.transform.localPosition = Vector3.SmoothDamp (weapon.transform.localPosition, defaultPos, ref dampVelocity, smoothTime);
       Debug.Log ("UnAiming");
       recoil = defaultRecoil;
     }
   }
 
 
   void OnGUI()
   {
     GUILayout.Label("Ammo: " + ammoInClip + "/" + curAmmo);
   }
 }
   

Comment

People who like this

0 Show 0
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

Answer by CentauriDev · May 08, 2019 at 06:51 PM

I dont understand you question so good, but if it is public, it is possible to change it from the inspector. Or else were it says 13 you can change it to an other value.

Comment

People who like this

0 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 $$anonymous$$ · May 08, 2019 at 07:55 PM 0
Share

I would like to be able to change the amount of damage according to a public float or int. Does this help a little bit more?

avatar image CentauriDev $$anonymous$$ · May 10, 2019 at 12:11 PM 0
Share

Do you have another int and you the damage to be that?

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

182 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 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 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 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 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 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 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 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 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 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 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

My gun shoots while I'm reloading 2 Answers

Need help with burst fire script / adjusting the amount of damage my gun does. 0 Answers

Have damage done to player via colliders, only a certain amount of times? 1 Answer

Multi-gun Aiming System 1 Answer

How Can the player and NPCs' take 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