PBG2H23ABR_PBG2H23AKL_PMC_P.../Plunderblock/Assets/Scripts/ScriptsKevin/WeaponScript.cs

74 lines
1.9 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class WeaponScript : MonoBehaviour
{
public ParticleSystem muzzle;
public GameObject spawnpoint;
public GameObject bullet;
public DataBullet dataBullet;
public UI_Manager uI_Manager;
private int ammo;
private bool isReloading = false;
private float time = 0;
public float reloadTime;
private bool delayOver = true;
public float schussInterval;
private float delay = 0;
public void checkReload(){
if(ammo == 0){
isReloading = true;
}
if(isReloading){
time += Time.deltaTime;
if(time > reloadTime){
ammo = dataBullet.ammo;
uI_Manager.ammoReset();
time = 0;
isReloading = false;
}
}
}
public void shoot(){
if(ammo != 0 && delayOver){
if(Input.GetKeyDown(KeyCode.Mouse0)){
muzzle.gameObject.SetActive(true);
//muzzle.Play();
Instantiate(bullet,spawnpoint.transform.position,spawnpoint.transform.rotation);
ammo--;
uI_Manager.ammoDown();
delay = 0;
delayOver = false;
}
}
}
public void checkDelay(){
if(!delayOver){
delay += Time.deltaTime;
if(delay > schussInterval){
delayOver = true;
}
}
}
void Start()
{
ammo = dataBullet.ammo;
muzzle = GetComponentInChildren<ParticleSystem>();
spawnpoint = GameObject.Find("Player/PlayerView/BulletSpawnpoint");
uI_Manager = GameObject.FindGameObjectWithTag("Manager").GetComponent<UI_Manager>();
}
// Update is called once per frame
void Update()
{
checkDelay();
shoot();
checkReload();
}
}