23 lines
1005 B
C#
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);
|
|
}
|
|
}
|