TurnBasedStrategyCourse/Assets/Scripts/BulletProjectile.cs

23 lines
1005 B
C#

using UnityEngine;
public class BulletProjectile : MonoBehaviour {
[SerializeField] private TrailRenderer trailRenderer;
[SerializeField] private Transform bulletHitVfxTransform;
[SerializeField] private float moveSpeed = 200f;
private Vector3 targetPosition;
public void Setup(Vector3 newTargetPosition) => targetPosition = newTargetPosition;
private void Update() {
Vector3 moveDir = (targetPosition - transform.position).normalized;
float distanceBeforeMoving = Vector3.Distance(transform.position, targetPosition);
transform.position += moveSpeed * Time.deltaTime * moveDir;
float distanceAfterMoving = Vector3.Distance(transform.position, targetPosition);
if (!(distanceBeforeMoving < distanceAfterMoving)) return;
transform.position = targetPosition;
trailRenderer.transform.parent = null;
Destroy(gameObject);
Instantiate(bulletHitVfxTransform, targetPosition, Quaternion.identity);
}
}