Noticias

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

como cargar poco a poco un nivel

Iniciado por Jorge Alejandro, Abril 19, 2016, 03:38:55 PM

Tema anterior - Siguiente tema
Quisiera saber como cargar un nivel poco a poco, lo primero que pense fue en activar los gameobject uno por uno, para no sobrecargar la escena y cargarla de golpe y ize este script, pero que la tecnica no esta buena y quisiera saber otra opinion
var useLine : boolean = true;
var mesh : TextMesh;
var gSkin : GUISkin;
var progress : int;

var list : GameObject[];

private var j = 0;
private var length = 0;

function Start () {   
DontDestroyOnLoad (this);

length = list.length - 1;
var timeR = (length) * 0.0005f;

for(j = 0; j < list.length; j++){
   list[j].SetActive(true);
   progress = (j*100/length);
   if(!useLine) mesh.text = progress.ToString() + "%";
   yield WaitForSeconds (timeR);      
}
}

function Update () {
if(progress >= 99){
   if(mesh.gameObject) Destroy (mesh.gameObject);
   Destroy(gameObject);
}
}

function OnGUI () {
if(gSkin) GUI.skin = gSkin;

if(useLine)
   GUI.Box(Rect(5, Screen.height - 100, (progress * (Screen.width - 20))/100, 20), "");
}
 

no se que tan grande sea el nivel, para hacer eso, lo mejor es hacer una pantalla de carga. es decir el típico loading con un splash antes de tu nivel y lo cargas con ese splash y luego ya cuando entras al nivel esta todo cargado y listo para funcionar.

si eso de la pantalla lo se hacer, pero quisiera saber si hay otra forma de cargar que no lo haga de golpe

[quote author=Jorge Alejandro" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="35683" data-ipsquote-contentcommentid="129886">si eso de la pantalla lo se hacer, pero quisiera saber si hay otra forma de cargar que no lo haga de golpe[/quote]Para poder hacer algo como lo que dijo KsCorrales, deberías cargar la escena con una función Asyncronica para que esto funcione deberías utilizar co-rutinas entonces. 1 - Aprende corrutinas.2 - Aprende CallBack con Action.3 - Integra todo eso para tener una pantalla de carga.http://docs.unity3d.com/ScriptReference/SceneManagement.SceneManager.LoadSceneAsync.html" rel="external nofollow date=1461074405]http://docs.unity3d.com/ScriptReference/SceneManagement.SceneManager.LoadSceneAsync.html Suerte!


Te recomiendo también que mires el ejemplo de Cubic Pilot de google dentro de google play services plugin. 


Etiquetas: