Corrutinas

Contactar con el profesor

Son códigos que se ejecutan a lo largo de un espacio de tiempo. Utilizan la clase IEnumerator. En este ejemplo, el script irá asociado a la cámara.

Descargar Recurso
public class Corrutinas : MonoBehaviour {

public GameObject[] cubos;

void Start () {
	cubos = GameObject.FindGameObjectsWithTag ("Player");
	StartCoroutine (ApagarCubos());
}

IEnumerator ApagarCubos(){
	yield return new WaitForSeconds (2.0f);
	Debug.Log ("Empieza corrutina");
	cubos [0].SetActive (false);


	yield return new WaitForSeconds (2.0f);
	Debug.Log ("Empieza corrutina");
	cubos [1].SetActive (false);

	yield return new WaitForSeconds (2.0f);
	Debug.Log ("Empieza corrutina");
	cubos [2].SetActive (false);
}
}

Carga asíncrona de una escena

AsyncOperation asyncOperation;

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

IEnumerator cargarEscenaAsincronamente(){
	asyncOperation = SceneManager.LoadSceneAsync("Escena2", LoadSceneMode.Single);
	asyncOperation.allowSceneActivation = false;
	while (!(asyncOperation.progress > 0.89f)){
		Debug.Log("Progress: " + asyncOperation.progress);
		yield return null;
	}
	Debug.Log("llega el amor");
	yield break;
}

public void irAEscena2(){
	asyncOperation.allowSceneActivation = true;
}

Ejercicio

Carga ambas escenas asíncronamente

← Galería de tiro con Unity3D
Flappy Bird con Unity →

Aviso Legal | Política de privacidad