Cómo esperar antes de ejecutar algún código específico [duplicate]
– UnityAssets3Free
bienvenido , me llamo kein y hoy os traigo
esta unity pregunta
Esta pregunta ya tiene respuestas aquí: Cómo simplificar el script de esperar/dormir en unity
(7 respuestas) Cerrado el año pasado.
estoy usando unity con C# y quiere dejar que el jugador siga moviéndose un poco después de perder, y solo luego recargar la escena. Yo intenté:
if (inf.collider.tag == "Obstacle")
movement.enabled = false;
Camera.enabled = false;
System.Threading.Thread.Sleep(1000);
SceneManager.LoadScene("Level");
Pero el problema es que todo el juego y la física se liberan cuando llega a la línea de sueño. ¿Cómo esperaría correr? SceneManager.LoadScene("Level")
sin congelar todos los procesos?
2 respuestas 2
Deberías intentar usar una rutina.
https://docs.unity3d.com/ScriptReference/MonoBehaviour.StartCoroutine.html
using System.Collections;
//....
if (inf.collider.tag == "Obstacle")
movement.enabled = false;
Camera.enabled = false;
StartCoroutine(LoadSceneAfterTime(1));
//....
private IEnumerator LoadSceneAfterTime(float waitTime)
yield return new WaitForSeconds(waitTime);
SceneManager.LoadScene("Level");
tratar de usar Invoke()
método.
if (inf.collider.tag == "Obstacle")
movement.enabled = false;
Camera.enabled = false;
Invoke("LoadScene", 1.0f);
public void LoadScene()
SceneManager.LoadScene("Level");
nota: si aun no se resuelve tu pregunta por favor dejar un comentario y pronto lo podremos de nuevo , muchas gracias
eso es todo,espero que te funcione