Alvaro95 4 Report post Posted December 16, 2018 Buenas a todos. Vereis, tengo creado un menu creado a partir de un scene manager en el que tengo metidas 3 escenas, es decir, un menu en el que tengo tres modos de juego, tres escenas. Cual es el problema, una vez que entro en una escena y regreso al menu, cuando vuelvo a entrar nuevamente en la escena todo sigue en movimiento tal como cuando me sali. Lo que me interesaria es saber si se puede hacer que una vez que salga al menu y vuelva a entrar en la escena todo este como en el primer momento, que se reiniciria todo basicamente. Share this post Link to post Share on other sites
francoe1 474 Report post Posted December 16, 2018 SceneManager.UnloadSceneAsync Share this post Link to post Share on other sites
Alvaro95 4 Report post Posted December 28, 2018 (edited) Hola francoe1 Este es el script que estoy utilizando para cambiar de escenas, son solamente tres escenas. Como se deberia instalar debidamente el SceneManager.UnloadSceneAsync ? Por que si lo cambio por el SceneManager.LoadScene, me da error. Edited December 28, 2018 by Alvaro95 Share this post Link to post Share on other sites
pioj 800 Report post Posted December 29, 2018 Consejo paralelo: Recoge en una variable los strings de índices de cada escena, no uses strings literales. Te basta con definir un Enum con las escenas que tengas para tu juego. Es mucho más ordenado y efectivo. Share this post Link to post Share on other sites
lightbug 728 Report post Posted December 29, 2018 18 hours ago, Alvaro95 said: Por que si lo cambio por el SceneManager.LoadScene, me da error. Fijate las signatures del método: public static AsyncOperation UnloadSceneAsync(int sceneBuildIndex); public static AsyncOperation UnloadSceneAsync(string sceneName); public static AsyncOperation UnloadSceneAsync(SceneManagement.Scene scene); Podrá ser que no devuelve un void(?), ahora retorna un asyncOperation, podrías hacer: AsyncOperation async; ... async = UnloadSceneAsync("Scene 1"); Share this post Link to post Share on other sites
juanma_teso 159 Report post Posted December 29, 2018 No tendrías que usar un Enumerator para usar un Yield?? Creo que así se hacen las funciones asíncronas no? Share this post Link to post Share on other sites
lightbug 728 Report post Posted December 30, 2018 (edited) 10 hours ago, juanma_teso said: No tendrías que usar un Enumerator para usar un Yield?? Creo que así se hacen las funciones asíncronas no? me parece que no es necesario, por lo menos desde lo técnico no me suena, aunque no recuerdo la verdad, creo que es bastante usada la corrutina porque siempre está el típico: AsyncOperation async = SceneManager.LoadSceneAsync("XXX"); while (!async.isDone) yield return null; entonces como una vez que cargás no hacés nada hacés el yield y te queda super cómodo esperar en la línea que sigue (además de que más eficiente que preguntar frame a frame). PD: puse carga pero bueno, para cualquier async es igual Edited December 30, 2018 by lightbug Share this post Link to post Share on other sites