Files
Cube-Tower-Defense/Assets/Scripts/TurretBullet.cs
T

37 lines
1.0 KiB
C#

using UnityEngine;
public class TurretBullet : MonoBehaviour
{
[SerializeField] private float _damage = 1f;
[SerializeField] private float _speed = 5f;
[SerializeField] private float _distance;
private Vector3 _spawnPos;
public float Damage => _damage;
public float Distance => _distance;
private void Start()
{
_spawnPos = transform.position;
}
private void Update()
{
transform.Translate(Vector3.forward * (_speed * Time.deltaTime));
if (Vector3.Distance(transform.position, _spawnPos) > _distance)
Destroy(gameObject);
}
public TurretBullet Spawn(Turret turret, Vector3 spawnPoint, Vector3 direction)
{
var rot = turret.transform.rotation;
rot.SetLookRotation(direction);
var bullet = Instantiate(this, spawnPoint, rot, turret.transform);
bullet._damage += turret.Damage;
bullet._distance += turret.Distance - Vector3.Distance(spawnPoint, bullet.transform.position);
return bullet;
}
}