걷다가 멈춤(걷는 모션 포함되어있음), 뛰다가 멈춤(멈추는 모션만 있음) 애니메이션이 달라서 구분해줘야 하는게 좀 그렇다.
플레이어와 충돌하면 서서히 멈추도록 했다.
private IEnumerator StopDelay(float delay, bool walk)
{
float speed = Agent.speed;
float elapsed = 0f;
float duration = 2f;
//Stop Walking - 애니메이션 2초 후 멈춤
if (walk)
{
while (elapsed < duration)
{
elapsed += Time.deltaTime;
Agent.speed = Mathf.Lerp(speed, 0f, elapsed / duration);
yield return null;
}
}
else
{
Agent.speed = 0f; // 즉시 정지
}
isColliding = true;
yield return new WaitForSeconds(walk ? delay : 1f);
Agent.speed = prevAnimSpeed;
isColliding = false;
Agent.isStopped = false;
Animator.SetBool("Trigger", false);
if (walk) Animator.SetBool("Walk", true);
else Animator.SetBool("Run", true);
}