Jump to content
UnitySpain
Sign in to follow this  
Jorge Alejandro

como cargar poco a poco un nivel

Recommended Posts

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), "");
}

 

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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.

A grandes rasgos debería ser así, si bien esto no es complejo tampoco es tan simple.

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

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

 

Suerte!

Share this post


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

×
×
  • Create New...