Hace tiempo que tenía pensado en publicar algo para mostrar cómo cambiar directamente de escenas en nuestro juego (o en cualquier otra aplicación).
Para ello, nos basta con escribir la siguiente línea de código:
Application.LoadLevel( "nombre_escena" );
Aunque también podemos utilizar la misma línea, pero cambiando el String que le pasamos, por un int que actúa de índice (acordaos de los índices que le asignábamos a cada escena en el "Build Settings"...).
Application.LoadLevel( indice_escena );
NOTA: para insertar una escena tenemos que hacerlo abriendo la escena que queramos añadir, después vamos a "File" --> "Build Settings" --> "Add Current".
Si por el contrario, lo que queremos es salir/finalizar el juego/aplicación, lo que tenemos que escribir es lo siguiente:
Si por el contrario, lo que queremos es salir/finalizar el juego/aplicación, lo que tenemos que escribir es lo siguiente:
Application.Quit();
Una vez visto todo esto, me vino la siguiente duda: ¿cómo podría hacer que funcionase el botón "back" de mi smartphone para que volviese a la escena/pantalla anterior?
Por defecto la funcionalidad de este botón no viene programada, y depende de nosotros el hacerlo.
Solo tuve que documentarme un poco para saber que a dicho botón se le ha asignado el "KeyCode" de la tecla "escape".
Por tanto, para hacer que volvamos a la pantalla anterior tenemos que escribir en el método "Update()" del "Script" que le hayamos asignado a nuestra escena lo siguiente:
if( Input.GetKey( KeyCode.Escape ) )
{
Application.LoadLevel("escena_anterior");
}
Como es normal, si estuviésemos en la escena del comienzo de la aplicación, el contenido de este 'if' tendría que ser "Quit()" en vez de "LoadLevel(...)".
Por defecto la funcionalidad de este botón no viene programada, y depende de nosotros el hacerlo.
Solo tuve que documentarme un poco para saber que a dicho botón se le ha asignado el "KeyCode" de la tecla "escape".
Por tanto, para hacer que volvamos a la pantalla anterior tenemos que escribir en el método "Update()" del "Script" que le hayamos asignado a nuestra escena lo siguiente:
if( Input.GetKey( KeyCode.Escape ) )
{
Application.LoadLevel("escena_anterior");
}
Como es normal, si estuviésemos en la escena del comienzo de la aplicación, el contenido de este 'if' tendría que ser "Quit()" en vez de "LoadLevel(...)".
pero al volver a la escena anterior no se reiniciaria todo?
ResponderEliminarSegún he leído, lo que ocurre cuando haces "LoadLevel" es que todos los objetos del juego que han sido cargados antes de hacer el "load", se destruyen (cubos, luces, fuentes de partículas, etc.).
EliminarLo que no tiene por qué perderse son los datos que tengas en ese momento. Basta con que tengas una BD para que guardes toda la info justo antes de hacer el load.
http://docs.unity3d.com/ScriptReference/Application.LoadLevel.html
Gracias amigo, estoy creando una aplicacion empresarial y era lo unico que me faltaba para que quedare profesional, super esta info, quedaba horrible tener que hacer un boton ATRAS y que se deshabilitara el boton del smartphone,,,, gracias te amo...
ResponderEliminarHola creo que este blog les puede ser de utilidad ahi viene un ejemplo
ResponderEliminarhttp://ingenieriazen.blogspot.mx/2017/05/cargar-escenas-en-unity-5.html
Este comentario ha sido eliminado por un administrador del blog.
ResponderEliminar