En este momento estás viendo Cómo esperar antes de ejecutar algún código específico [duplicate]

 – Unity

Cómo esperar antes de ejecutar algún código específico [duplicate] – Unity

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

Deja una respuesta