Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: Uoho en Marzo 04, 2013, 10:02:47 PM

Título: Carga entre escenas
Publicado por: Uoho en Marzo 04, 2013, 10:02:47 PM
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 (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!
Título: Carga entre escenas
Publicado por: nightborn en Marzo 04, 2013, 10:32:50 PM
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);
}
}[/quote]

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!
Título: Carga entre escenas
Publicado por: Mantis en Marzo 04, 2013, 10:35:21 PM
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.
Título: Carga entre escenas
Publicado por: nightborn en Marzo 04, 2013, 10:43:59 PM
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.[/quote]

Y el script es el que dije yo xD
Título: Carga entre escenas
Publicado por: Mantis en Marzo 04, 2013, 10:44:44 PM
Edgargaza eso lo puedes hacer simplificado en start():




var Segundos : float;

function Start(){

    CargarSiguienteEscena();

}

function CargarSiguienteEscena(){

    yield WaitForSeconds(Segundos);
    Application.LoadLevel(Escena);
}
Título: Carga entre escenas
Publicado por: nightborn en Marzo 04, 2013, 10:48:28 PM
Edgargaza eso lo puedes hacer simplificado en start():




var Segundos : float;

function Start(){

    CargarSiguienteEscena();

}

function CargarSiguienteEscena(){

    yield WaitForSeconds(Segundos);
    Application.LoadLevel(Escena);
}
[/quote]

Lol que tonto, no caí en eso. xD Pues mira, lo utilizaré para mi pantalla de carga. Gracias!!
Título: Carga entre escenas
Publicado por: BMD Games en Marzo 05, 2013, 12:01:05 AM
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?
Título: Carga entre escenas
Publicado por: Uoho en Marzo 05, 2013, 12:09:47 AM
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?
Título: Carga entre escenas
Publicado por: BMD Games en Marzo 05, 2013, 01:11:01 AM
Vuelvo a denotar...  

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:
Título: Carga entre escenas
Publicado por: pascual98 en Noviembre 17, 2015, 12:13:49 AM
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.
Título: Carga entre escenas
Publicado por: Oak Human Flesh en Noviembre 17, 2015, 03:17:38 AM
[quote author=pascual98" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="6440" data-ipsquote-contentcommentid="123605">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.[/quote]Eso  para la versión de Unity 5. ;) Título: Carga entre escenas
Publicado por: l0111 en Noviembre 18, 2015, 08:45:19 PM
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. 
Título: Carga entre escenas
Publicado por: iRobb en Noviembre 18, 2015, 09:28:40 PM
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.
Título: Carga entre escenas
Publicado por: mrpacogp en Noviembre 19, 2015, 01:08:09 PM
[quote author=iRobb" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="6440" data-ipsquote-contentcommentid="123703 date=1447878520]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.[/quote]Esto ya está en la versión free disponible? 
Título: Carga entre escenas
Publicado por: iRobb en Noviembre 19, 2015, 01:34:57 PM
Ahora me hacías dudar. He revisado el código y sí, lo hizo teniendo la free en su momento. En la ayuda no menciona nada de pro:http://docs.unity3d.com/es/current/ScriptReference/Application.LoadLevelAsync.htmlPrueba de incorporarlo en un proyecto limpio, a ver.
Título: Carga entre escenas
Publicado por: ACarranza en Noviembre 19, 2015, 07:54:25 PM
si se te complica mucho usar loadllevelAsync, hay otro metodo que puedes usar que es lo que uso ahorita . uso una pantalla de cargando con una camara que esta sobre todo y este contiene un sprite que dice cargando, ademas que en su script tiene la funcion de dontdestroyonload para que no se destruya al cambiar de escena, cuando quiero cambiar de escena activo esa camara, me tapa todo, cargo la nueva escena y despues de tener ya todo listo ( objetos instanciados , inicializados ect ) desactivo esa camara y yap. es un fake de carga pero pues funciona perfectamente y te da la ilusion jejjesaludos  .