Corotinas
·Uma das ferramentas mais importantes da Unity são as Corotinas, elas permitem dividir o fluxo de execução do script e fazer com que uma função seja executada ao longo de vários frames.
Corotinas são declaradas como funçãos com tipo IEnumerator e devem ser chamadas com a função StartCoroutine().
void Update()
{
if(Input.GetKeyDown(KeyCode.Space))
{
StartCoroutine(DashForward(10));
}
}
IEnumerator DashForward(int duracao)
{
/*
Força o jogador a se mover rapidamente para a direita por alguns frames
*/
mRigidBody = GetComponent<RigidBody2D>();
while(duracao > 0)
{
mRigidBody.velocity = Vector2.right * 5;
duracao--;
yield return null;
}
}
Dentro de uma corotina, devemos usar a palavra ´yield´ para indicar onde a execução será pausada até o próximo frame. Podemos também utilizar outros valores no lugar de null, entre eles: ´yield return new WaitForFixedUpdate()´ retomará a execução no proximo frame de fixed update, ‘yield return new WaitForSeconds(3)’ retomará após 3 segundos.