Jump to content
Sign in to follow this  
Uoho

Carga entre escenas

Recommended Posts

Buenas noches! Estoy intentando hacer que al pasar de una escena a otra, en esa transicion, salga una pantalla de carga. He mirando y mriado temas, y por lo que veo (http://gen4.unityspain.com/index.php/foro/43-interfaz/20548-quiero-hacer-una-barra-de-progreso-loading?limit=6&start=6) parece ser que solo se puede hacer en la version PRO; y no es mi caso.... ¿No hay ninguna manera de hacerlo en la version free? Saludos!

Share this post


Link to post
Share on other sites

Hay una manera un poco basta, que es la que uso yo xD, y es creando un script con lo siguiente:

//Escena es la escena a la que pasará después de cargar var Escena : String; private var Tiempo : float = 0; function Start(){ Tiempo = 0; } function Update(){ //Se suman los segundos Tiempo += 1; yield WaitWithSeconds(1.0); Tiempo+= 1; //Así hasta que consigas hacer todos los segundos que quieras que tarde la pantalla de carga //Acaba la carga a los 30 segundos y pasa de nivel if(Tiempo == 30){ Application.LoadLevel(Escena); } }

Como he dicho, es un poco basto, ya que si te fijas, tienes que crear los segundos a mano. Hay otra forma de hacerlo, y es menos complicada, pero por desgracia no se hacerla... :( De todas formas, si decides hacerla así, supongo que funcionará igual. Espero que te sirva!

Share this post


Link to post
Share on other sites

Si estamos en Escena 1 y queremos ir a Escena 2 con una pantalla intermedia (de carga). Pues te creas otra escena (la intermedia) que ponga por ejemplo "Loading" en medio de la pantalla. De la Escena 1 vamos a la escena intermedia (Loading) y en Loading tenemos un script que a los 2 , 3, 4 , o los segundos que sean cargue automaticamente la Escena 2.

Share this post


Link to post
Share on other sites
Si estamos en Escena 1 y queremos ir a Escena 2 con una pantalla intermedia (de carga). Pues te creas otra escena (la intermedia) que ponga por ejemplo "Loading" en medio de la pantalla. De la Escena 1 vamos a la escena intermedia (Loading) y en Loading tenemos un script que a los 2 , 3, 4 , o los segundos que sean cargue automaticamente la Escena 2.
Y el script es el que dije yo xD

Share this post


Link to post
Share on other sites

Edgargaza eso lo puedes hacer simplificado en start():


var Segundos : float;

function Start(){

    CargarSiguienteEscena();

}

function CargarSiguienteEscena(){

    yield WaitForSeconds(Segundos);
    Application.LoadLevel(Escena);
}

Share this post


Link to post
Share on other sites
Edgargaza eso lo puedes hacer simplificado en start():

var Segundos : float;

function Start(){

    CargarSiguienteEscena();

}

function CargarSiguienteEscena(){

    yield WaitForSeconds(Segundos);
    Application.LoadLevel(Escena);
}

Lol que tonto, no caí en eso. xD Pues mira, lo utilizaré para mi pantalla de carga. Gracias!! :D

Share this post


Link to post
Share on other sites

Pero creo que sería muy mentiroso hacer esto de esta manera... porque solo serviria para decirle al jugador que está cambiando de escena (Al ver el típico Loading...)... per no se puede crear una verdadera pantalla de carga?

Share this post


Link to post
Share on other sites

Esta muy bien la idea que me dais, pero tengo una duda... Yo en esa escena intermedia pongo una barrita de esas que se van rellenando con un tanto por ciento, y nada mas llenarse, que se cargue la escena 2....peeeeero la escena 2 tarda en cargar, asi que una vez esté la barra llena se empezará a cargar la nueva escena, y se demorara unos segundos con la barra ya al 100%...no se si me explico...que no quedaria muy "real" no?

Share this post


Link to post
Share on other sites

Vuelvo a denotar... :huh::huh::huh: Ese método es un tanto mentiroso... es solo para hacerle saber al Jugador que se está cargando una escena... porque la verdad es que para cargar una escena debajo de otra es decir, en segundo plano utilizas "Application.LoadLevelAsync" pero es solo para Unity PRO... así que creo que en la free no se puede... :dry:

Share this post


Link to post
Share on other sites
Guest pascual98

No es necesario tener Unity Pro. Quiero dejar claro que entre Unity Free y Unity Pro no hay ninguna diferencia a la hora de crear un juego, puedes hacer lo mismo con cualquiera de los dos. Lo único es que Unity Pro viene con herramientas de estadísticas para controlar tu juego y te permite quitar el Splash inicial, pero nada mas, a la hora de desarrollar es igual y puedes hacer lo mismo.

Share this post


Link to post
Share on other sites

No es necesario tener Unity Pro. Quiero dejar claro que entre Unity Free y Unity Pro no hay ninguna diferencia a la hora de crear un juego, puedes hacer lo mismo con cualquiera de los dos. Lo único es que Unity Pro viene con herramientas de estadísticas para controlar tu juego y te permite quitar el Splash inicial, pero nada mas, a la hora de desarrollar es igual y puedes hacer lo mismo.

Eso  para la versión de Unity 5. ;)

 

Share this post


Link to post
Share on other sites

Igual es una idea un poco tonta, pero a mi se me hubiera ocurrido que si tu barrita de carga son 10 seg (por ej.) y tu escena tarda en cargar 5 seg, llames a un Invoke("metodoLoad", 5) antes del código de la barrita, donde metodoLoad es la funcion donde haces el ApplicationLoad; y así a los 5 seg de haber leido ese código se te empezará a cargar la escena, y la barrita completa y la carga de la escena se harían a la vez. 

Share this post


Link to post
Share on other sites

Pero esto de que habláis no es una barra de carga, es una barra de espera! No se puede poner 5 segundos, ya que depende de en qué configuración lo ejecutes. La barra debería mostrarse a medida que la escena carga y cerrarse cuando haya cargado, no estar mostrándose con la escena cargada.

Utilizad LoadLevelAsync para cargarla y poder visualizar la barra.

Share this post


Link to post
Share on other sites

Pero esto de que habláis no es una barra de carga, es una barra de espera! No se puede poner 5 segundos, ya que depende de en qué configuración lo ejecutes. La barra debería mostrarse a medida que la escena carga y cerrarse cuando haya cargado, no estar mostrándose con la escena cargada.

Utilizad LoadLevelAsync para cargarla y poder visualizar la barra.

Esto ya está en la versión free disponible?

 

Share this post


Link to post
Share on other sites
Sign in to follow this  

UnitySpain © Todos los derechos reservados 2020
×
×
  • Create New...