Project_WL/Assets/Script/Character/Projectile/Projectile/Projectile_Guide.cs

46 lines
1.5 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Projectile_Guide : ProjectileBase
{
private float dis;
private float speed;
private float waitTime;
Transform TargetTr;
public override void Set(ProjectileData _data)
{
base.Set(_data);
transform.rotation = Quaternion.LookRotation(transform.position - _data.shooter.Get_Center_position());
TargetTr = _data.target.transform;
}
void Update()
{
if (DSUtil.CheckNull(TargetTr)) return;
waitTime += Time.deltaTime;
//1.5초 동안 천천히 forward 방향으로 전진합니다
if (waitTime < 1.5f)
{
speed = Time.deltaTime;
transform.Translate(transform.forward * speed, Space.World);
}
else
{
// 1.5초 이후 타겟방향으로 lerp위치이동 합니다
speed += Time.deltaTime;
float t = speed / dis;
transform.position = Vector3.LerpUnclamped(transform.position, TargetTr.position, t);
}
// 매프레임마다 타겟방향으로 포탄이 방향을바꿉니다
//타겟위치 - 포탄위치 = 포탄이 타겟한테서의 방향
Vector3 directionVec = TargetTr.position - transform.position;
Quaternion qua = Quaternion.LookRotation(directionVec);
transform.rotation = Quaternion.Slerp(transform.rotation, qua, Time.deltaTime * 2f);
}
}