using System.Collections; using System.Collections.Generic; using UnityEngine; public class Weapon : MonoBehaviour { [SerializeField] private int maxAmmo; [SerializeField] private float shootSpeed; [SerializeField] private int damage; [SerializeField] private bool fullAuto; [SerializeField] private float shootPointHeight; [SerializeField] private GameObject Bullet; private int Ammo; private bool shootDone; private float Wait; private Transform shootPoint; private SpriteRenderer SR; private void Start() { Ammo = maxAmmo; shootPoint = transform.GetChild(0); SR = transform.GetComponent(); } public void shoot() { if(Ammo == 0 || Wait > 0 || shootDone && !fullAuto) { return; } if(!fullAuto) { shootDone = true; } Wait += shootSpeed; GameObject bullet = GameObject.Instantiate(Bullet, shootPoint.position, transform.rotation); bullet.GetComponent().setDmg = damage; bullet.GetComponent().OwnTag = transform.tag; } private void Update() { Wait -= Time.deltaTime; Wait = Mathf.Clamp(Wait, 0, shootSpeed); if(Wait == 0) { shootDone = false; } if(SR.flipY) { shootPoint.localPosition = new Vector3(shootPoint.localPosition.x, -shootPointHeight, 0); } else { shootPoint.localPosition = new Vector3(shootPoint.localPosition.x, shootPointHeight, 0); } } }