Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Desarrollando un Pre-Loader de niveles con barra que muestre el progreso

Iniciado por Ele, Septiembre 15, 2015, 10:24:53 PM

Tema anterior - Siguiente tema
Saludos colegas! hoy quiero compartirles un método para crear un pre-loader de niveles en Unity, es bastante sencillo. El método que vamos a usar es http://docs.unity3d.com/ScriptReference/Application.LoadLevelAsync.html">Application.LoadLevelAsync(int|string) básicamente este método lo que hace es cargar el nivel en segundo plano lo que permite ir mostrando un progreso con su propiedad "progress".Hay que tener en cuenta que la propiedad "progress" por alguna razón que desconozco solo va de 0.0f a 0.9f por lo que debemos multiplicar su valor por 100 si queremos mostrar el porcentaje, esto también implica que no podemos usarlo en algún condicional para saber si el nivel se cargo completamente o no, esto es algo que Unity debe solucionar ya que nunca llegara a 1f (o 100 si lo estas multiplicando), para ello deberemos usar la propiedad "isDone" cuyo valor sera false mientras se este cargando el nivel y true al completarse la carga.También es importante tener presente que una vez se cargue completamente el nivel, dicho nivel se activara automáticamente a menos que se le indique a la propiedad "allowSceneActivation" que no, esto es bastante útil si queremos mostrar o hacer "algo" antes de que se active el nivel, activar un efecto en la cámara, etc...https://eleazarcelis.files.wordpress.com/2015/09/captura__15_09_2015__112554.jpg">Acá les comparto el código fuente de una clase que ya yo he creado:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57

Porqué no utilizas una Image con un Fill Horizontal? Esta siempre va de 0 a 1 perfectamente y no necesitas obtener el size ni nada.

[quote author=iRobb" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="24153" data-ipsquote-contentcommentid="110787 date=1442350600]Porqué no utilizas una Image con un Fill Horizontal? Esta siempre va de 0 a 1 perfectamente y no necesitas obtener el size ni nada.[/quote]la cuestión es que es una barra compuesta de 3 sprites, si modifico fill el sprite del borde derecho se quedara en su sitio quedando un espacio vacio entre él y el rectangulo central. mas bien lo que hice fue colocar el rectángulo central y el sprite derecho (el que tiene forma de triangulo) dentro del RecTransform que voy a controlar con async.progress, y el sprite izquierdo se queda estático en una posición negativa con respecto a su parent (progress_container), así progress puede tener un anclaje de todos los lados al igual que progress_container, esto me brinda flexibilidad a la hora de cambiar de resolución. pero si fuera una barra con un simple rectángulo si seria lo mejor como dices tu, gracias por tu observación.

Etiquetas: