So, I have my gun script and it shoots bullets where my mouse courser is, but sometimes it uses 2 ammo per shoot, which I don’t want. I don’t know where the problem it. Could someone help me out?
Code:
using UnityEngine;
using System.Collections;
public class Shoot : MonoBehaviour
{
[Range (0, 50)]
public float Change_Despawn_Bullet;
[Range(0, 50)]
public float Bullet_Forward_Force;
[Range(0, 50)]
public float WaitTimeRelaod;
[Range(0, 100)]
public int ClipSize_Number = 12;
[Range(0, 100)]
public int AmmoSize_Number = 36;
public Transform playerTransform;
public float offset = 90;
private GameObject tempGameObject;
public GameObject Bullet;
public GameObject Bullet_Spawner;
private Damage_Heal ammo_clip;
private void Start()
{
ammo_clip = GetComponent<Damage_Heal>();
tempGameObject = new GameObject();
ammo_clip.UpdateAmmo_ClipBar();
ammo_clip.AmmoSize = AmmoSize_Number;
ammo_clip.ClipSize = ClipSize_Number;
if (playerTransform == null)
{
playerTransform = GameObject.FindWithTag("Player").transform;
}
}
public void Update()
{
ammo_clip.UpdateAmmo_ClipBar();
if (Input.GetKeyDown("r"))
{
StartCoroutine("Reload_Animation");
}
}
public void FixedUpdate()
{
RaycastHit hit = new RaycastHit();
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if ((Physics.Raycast(ray, out hit)) &&
(Bullet_Spawner != null) &&
(Bullet != null) &&
(ammo_clip != null) &&
(ammo_clip.ClipSize > 0) &&
(Input.GetMouseButtonDown(0)))
{
Gun_Controll(hit);
}
}
IEnumerator Reload_Animation()
{
while ((ammo_clip != null) && ammo_clip.ClipSize >= 0 && ammo_clip.ClipSize < 12 && ammo_clip.AmmoSize > 0)
{
yield return new WaitForSeconds(WaitTimeRelaod);
ammo_clip.AmmoSize -= 1;
ammo_clip.ClipSize += 1;
ammo_clip.UpdateAmmo_ClipBar();
}
}
public void Gun_Controll(RaycastHit hit)
{
if (Input.GetMouseButtonDown(0))
{
tempGameObject.transform.LookAt(hit.point);
GameObject Temporary_Bullet_Handler;
Temporary_Bullet_Handler = Instantiate(Bullet, Bullet_Spawner.transform.position, Bullet_Spawner.transform.rotation) as GameObject;
Temporary_Bullet_Handler.transform.Rotate(Vector3.left * 90);
Rigidbody Temporary_RigidBody;
Temporary_RigidBody = Temporary_Bullet_Handler.GetComponent<Rigidbody>();
Temporary_RigidBody.AddForce(tempGameObject.transform.forward * Bullet_Forward_Force * 100);
tempGameObject.transform.LookAt(hit.point);
Destroy(Temporary_Bullet_Handler, Change_Despawn_Bullet);
ammo_clip.ClipSize -= 1;
ammo_clip.UpdateAmmo_ClipBar();
}
}
}
Here is the game file:
[84306-battle-blocks-export.zip|84306]
@Mavina
can you help again?