Powered By Blogger

lunes, 1 de mayo de 2017

Cargar Escenas En Unity 5

Es importante señalar que las instrucciones que se presentan a continuación pueden variar en función de la versión de Unity que manejes.

Para Unity 5:

1. En primer lugar es necesario importar el espacio de trabajo de las bibliotecas en el script, esto se logra agregando la siguiente línea de código:

using UnityEngine.SceneManagement;

2. Dependiendo de la parte de codigo en la que quieramos cargar nuestra escena agregaremos:

SceneManager.LoadScene("Main_Menu"); //Carga escena por nombre

O bien

SceneManager.LoadScene(0); //Cargar escena por index

Nota: Recuerden que el nombre de la escena en el código debe ser exactamente el mismo que el arrojado por el editor, caso contrario generará un error.
También es necesario recordar que antes de probar el juego necesitamos cargar las escenas que comprende nuestro proyecto en el menu File -> BuildSettings, de igual manera en caso contrario el programa generará un error.


Para este ejemplo, crearemos dos escenas y al dar clic en un Button cambiaremos de escenas.


Crearemos una escena y la llamaremos:  MainScene

Dentro de esta escena crearemos un Cube modificando su componente transform como se muestra a continuación:





También crearemos un Button modificado sus propiedades como se muestra a continuación:





Crearemos un script en C# al que llamaremos ChangeOfScene y agregaremos el código que se muestra en la siguiente imagen:




Agregaremos el script al Button, y en este modificaremos su componente Button (Script) añadiendo un evento de OnClick()



Arrastraremos el componente Button a la caja de texto del componente OnClick



Seleccionaremos el método publico de nuestro script llamado loadNewSceneByName()




Ahora crearemos una segunda escena y la llamaremos Scene0

Agregaremos algunos componentes (Cube,Sphere) modificando sus propiedades de transform como se muestra a continuación:





De igual manera agregaremos un Button y modificaremos sus propiedades como se muestra a continuación:





Ahora bien repetiremos los pasos 5,6 y para el paso 7 seleccionaremos el método publico loadNewSceneByIndex()





Abriremos la escena denominada MainScene 

Iremos al menu File->BuildSetttings y daremos clic en Add Open Scenes

Sin cerrar la ventana de BuildSetttings abriremos la escena denominada Scene0 y de igual manera daremos clic en Add Open Scenes, aqui deberemos tener algo similar a la siguiente imagen:





Guardaremos el proyecto y finalmente podemos probarlo






Espero les sirva, comenten, cualquier duda estoy a sus ordenes!!!

Aquí les proporciono un link con el proyecto para descargar.
https://www.dropbox.com/sh/we2gbkpvjr3zo7x/AACo8J93-I8potJpSy2Hiufka?dl=0

1 comentario:

  1. Hola, tengo una duda. que diferencia hay entre "SceneManager.LoadScene(sceneIndex - 1);" y "SceneManager.LoadScene(0);". En mi proyecto tengo en el script "if (Input.GetKeyDown(KeyCode.Escape))
    SceneManager.LoadScene(sceneIndex - 1);" para una app android, al presionar la tela regresar en mi cel, se cierra la aplicación, cuando debería regresar a la escena anteior

    ResponderEliminar