Files
ClickRPG/Assets/MasterStylizedFX/Scripts/BulletShooter.cs
2025-10-04 12:25:29 +01:00

46 lines
1.2 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BulletShooter : MonoBehaviour
{
public ParticleSystem Muzzle;
public ParticleSystem Bullet;
public float BulletSpeed = 100f;
public float Distance;
public ParticleSystem HitEffect;
public Transform BulletStartPoint;
private void OnEnable()
{
ShootBullet();
}
private void Update()
{
}
public void ShootBullet()
{
StartCoroutine(ShootBulletCoroutine());
}
public IEnumerator ShootBulletCoroutine()
{
var time = Distance / BulletSpeed;
Instantiate(Muzzle, BulletStartPoint.position, BulletStartPoint.rotation);
var bullet = Instantiate(Bullet, BulletStartPoint.position, BulletStartPoint.rotation);
bullet.transform.parent = transform;
var timer = 0f;
while (timer < time)
{
timer += Time.deltaTime;
bullet.transform.position += bullet.transform.forward * BulletSpeed * Time.deltaTime;
yield return null;
}
//destroy bullet
Destroy(bullet.gameObject);
//instantiate hit effect
Instantiate(HitEffect, bullet.transform.position, bullet.transform.rotation);
}
}