Я заменил Update корутиной с постоянным перезапуском 0.5 сек
Можна ли так делать и правельно ли это? 
Я не уверен в yield break; По моему мнению он останавливает корутину, но зачем тогда StopCoroutine() нужен?
У меня перезапускается одна и та же корутина или плодятся новые экземпляры каждые 05 сек и существуют дальше в памяти?
Перечитал много разных статей, но конкретного ответа найти не смог.
Код
void Start
{
StartCoroutine(Man5Updator());
}
IEnumerator Man5Updator()
    {
        Man5Time = CubeResources.GetComponent<MyTimer>().GameMin;
        //STANDART
        if (transform.position != targetPos)
        {
            Man5Anim.SetBool("Walk", true);
            Man5Navi.SetDestination(targetPos);
        }
        else
        {
            Man5Anim.SetBool("Walk", false);
        }
 yield return new WaitForSeconds(0.5f);
        RepCourMan5();
       yield break;
    }
    public void RepCourMan5()
    {
        StartCoroutine(Man5Updator());
    }