Page 418 - MDP2022-3
P. 418
public bool isCoroutineFinish = false;
IEnumerator FollowTarget()
{
if (enemy != null && !is_head_rotation_finish)
{
controller.GetComponent<ContinuousTurnProviderBase>().enabled = false;
controller.GetComponent<ContinuousMoveProviderBase>().enabled = false;
Vector3 dir = enemy.transform.position - this.transform.position;
dir.Normalize();
while (true)
{
t h i s . t r a n s f o r m . r o t a t i o n = Q u a t e r n i o n . L e r p ( t h i s . t r a n s f o r m . r o t a t i o n ,
Quaternion.LookRotation(dir), Time.deltaTime * speed);
if (isCoroutineFinish)
{
break;
}
yield return null;
}
}
}
public void HeadRotate_Finish()
{
is_head_rotation_finish = true;
isCoroutineFinish = true;
controller.GetComponent<ContinuousTurnProviderBase>().enabled = true;
controller.GetComponent<ContinuousMoveProviderBase>().enabled = true;
}
}