using UnityEngine; public class ShootScript: MonoBehaviour { public Transform Gun, ShootPoint; public float BulletSpeed, BulletRange, BulletDamage, BulletUnloadSpeed, BulletMagSize, BulletReloadSpeed, BulletBurstAmount; private float BurstTimer, BurstCounter; private string ProjectileType; Vector2 direction; private void Update() { Vector2 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition); direction = mousePos - (Vector2)Gun.position; FaceMouse(); BurstTimer -= Time.deltaTime; if (BulletBurstAmount > 0 && BurstTimer < 0) { GameObject BulletInstance = Instantiate(GameObject.Find(ProjectileType), ShootPoint.position, ShootPoint.rotation * Quaternion.Euler(0, 0, 90)); BulletInstance.GetComponent().AddForce(BulletInstance.transform.up * -1 * BulletSpeed); BurstTimer = BurstCounter; BulletBurstAmount--; } } void FaceMouse() { Gun.transform.right = direction; } public void Shoot(string projectile, float speed, float range, float damage, float unload, float burst = 1, float burstSpeed = 0) { ProjectileType = projectile; BulletRange = range; BulletDamage = damage; BulletSpeed = speed; BulletUnloadSpeed = unload; BulletBurstAmount = burst; BurstCounter = burstSpeed; BurstTimer = BurstCounter; } }