Files
2026-01-21 10:56:26 -07:00

51 lines
1.5 KiB
C#

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<Rigidbody2D>().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;
}
}