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

77 lines
2.1 KiB
C#
Raw Normal View History

2024-06-14 16:58:09 +02:00
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class WeaponScript : MonoBehaviour
{
public ParticleSystem muzzle;
2024-06-14 19:08:04 +02:00
public GameObject spawnpoint;
2024-06-14 16:58:09 +02:00
public GameObject bullet;
2024-07-01 16:37:19 +02:00
public DataBullet dataBullet;
public UI_Manager uI_Manager;
2024-07-01 16:37:19 +02:00
private InputManagerScript inputManagerScript;
2024-07-01 16:37:19 +02:00
private int ammo;
private bool isReloading = false;
private float time = 0;
public float reloadTime;
2024-07-05 11:07:17 +02:00
private bool delayOver = true;
public float schussInterval;
private float delay = 0;
public void checkReload(){
if(ammo == 0 || Input.GetKeyDown(inputManagerScript.getReload())){
2024-07-01 16:37:19 +02:00
isReloading = true;
}
if(isReloading){
time += Time.deltaTime;
if(time > reloadTime){
ammo = dataBullet.ammo;
uI_Manager.ammoReset();
2024-07-01 16:37:19 +02:00
time = 0;
isReloading = false;
}
}
}
public void shoot(){
if(!isReloading && delayOver){
if(Input.GetKeyDown(inputManagerScript.getShoot())){
2024-07-05 11:07:17 +02:00
muzzle.gameObject.SetActive(true);
//muzzle.Play();
Instantiate(bullet,spawnpoint.transform.position,spawnpoint.transform.rotation);
ammo--;
uI_Manager.ammoDown();
2024-07-05 11:07:17 +02:00
delay = 0;
delayOver = false;
}
2024-07-05 11:07:17 +02:00
}
}
public void checkDelay(){
if(!delayOver){
delay += Time.deltaTime;
if(delay > schussInterval){
delayOver = true;
}
2024-06-14 16:58:09 +02:00
}
}
void Start()
{
2024-07-01 16:37:19 +02:00
ammo = dataBullet.ammo;
muzzle = GetComponentInChildren<ParticleSystem>();
spawnpoint = GameObject.Find("Player/PlayerView/BulletSpawnpoint");
uI_Manager = GameObject.FindGameObjectWithTag("Manager").GetComponent<UI_Manager>();
inputManagerScript = GameObject.Find("InputManager").GetComponent<InputManagerScript>();
2024-06-14 16:58:09 +02:00
}
// Update is called once per frame
void Update()
{
2024-07-05 11:07:17 +02:00
checkDelay();
2024-06-14 16:58:09 +02:00
shoot();
2024-07-05 11:07:17 +02:00
checkReload();
2024-06-14 16:58:09 +02:00
}
}