Unidade - retorno de rendimento do IEnumerator null

Atualmente, estou tentando entender o IEnumerator & Coroutine no contexto do Unity e não estou muito confiante no que o "retorno de retorno nulo" executa. No momento, acredito que basicamente faz uma pausa e aguarda o próximo quadro e no próximo quadro ele voltará a executar a instrução while novamente.

Se eu deixar de fora o "retorno de retorno nulo", parece que o objeto se moverá instantaneamente para o seu destino ou talvez "pule muitos quadros". Então, eu acho que a minha pergunta é como essa função "yield return null" dentro desse loop while e por que é necessário tê-lo.

void Start () {
    StartCoroutine(Move());
}

IEnumerator Move(){

    while (a > 0.5f){

        ... (moves object up/down)

        yield return null; // <---------
    }

    yield return new WaitForSeconds(0.5f);

    .... (moves object up/down)

    StartCoroutine(Move());
}

questionAnswers(2)

yourAnswerToTheQuestion