Noticias

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

Seleccionar nivel a cargar? (solucionado)

Iniciado por marketxu, Noviembre 15, 2015, 06:40:55 PM

Tema anterior - Siguiente tema
Noviembre 15, 2015, 06:40:55 PM Ultima modificación: Noviembre 16, 2015, 01:05:43 PM por marketxu
Hola el caso es que uso este script. 
function OnTriggerEnter() {
 Application.LoadLevel("Level04");
}

 pero no veo como hacer seleccionable en el inspector, el nivel que quiero cargar.antes tenia 4 niveles y usaba 4 scripts iguales cambiando el nombre del nivel en cada uno pero ahora tengo casi 40 y eso no es viable.si pudiera arrastrar la escena a cargar, seria lo suyo. gracias de antemano.

Arrastrar? Quieres hacer un menu para seleccionar los niveles? Porque si es asi no se para que usas OnTrigger, o quieres que al detectar el trigger cargue un nvl?

La idea es para cargar niveles como en el half-life, uno detrás de otro,lo de arrastrar es para que en el inspector seleccione la escena objetivo ya que pueden haber unas 3 opciones( distintas escenas) por escena al final tendría muchos archivos casi iguales solo para esto. 
uso el OnTrigger para que cargue el nivel que preselecciono en el inspector al pasar el player por encima.

Entonces utiliza un arreglo de escenas o que contenga el nombre de la escena y utiliza un simple boton, si quieres ya con thumbs y demas ya tendrias que crear una clase para ello.

Noviembre 15, 2015, 09:00:38 PM #4 Ultima modificación: Noviembre 15, 2015, 09:09:53 PM por marketxu
El problema está ahí, que no tengo ni idea de como hacerlo.las escenas las tengo nombradas con casa, patio, escaleras, terraza, sotano, etcPor ejemplo, descubrí como seleccionar la tag que tenia que seguir una IA usando una public var pero es es en c# en js no sé como hacerlo.

Reformula lo que quieres lograr, asi vas resolviendo por partes, y explica nuevamente.

vale, vamos a verpara cargar cada escena uso un script "cambiarnivel2.js" para entrar en la escena 2 , "cambiarnivel3.js" para entrar en la escena 3, y así sucesivamente.al tener 60 escenas, tendría 60 archivo  desde "cambiarnivel2.js" a"cambiarnivel60.js" lo cual es un engorro.lo que quiero es limitar esta función a un solo script.
Osea que pueda añadir el script a un trigger y desde el inspector elija la escena destino, bien escribiendo el nombre de la escena o bien arrastrando la escena objeto, me resulta indiferente. 
Pero vamos que no doy con la forma.ya te digo que llevo poco en esto y voy aprendiendo sobre la marcha. 

Entonces crea un solo script asi...
public string nombreEscena;
Application.LoadScene(nombreEscena);
Y en el inspector le pones el nombre de tu escena.
No copies y pegues lo que te paso, investiga esto antes de hacer algo.

si clarogracias 
algo asi?
 var sceneName : string = "XXXXX";
function OnTriggerEnter()
 Application.LoadLevel(sceneName);


}
o algo así

public string[]  nombreEscena;
function OnTriggerEnter() {
 Application.LoadScene(nombreEscena);
}

 dandome contra un muro otra vez 
tampoco así.....
public Object nextScene; 
function OnTriggerEnter() {
  Application.LoadLevel(nextScene.name);
}

 

vale he conseguido esto
using UnityEngine;
using System.Collections;

public class levelloader : MonoBehaviour
{
public GameObject Scene;
void OnTriggerEnter(Collider other) {
   Application.LoadLevel("Scene");
}
}
pero el problema que tengo ahora es que no puedo añadir una escena como un game object. me voy acercando pero no doy con la clave 

Es oficial estoy mareao y mas perdido del copón.

Vos mismo te estas respondiendo, una escena no es un GameObject es un Scene, y ademas estas usando "" en el LoadScene, te recomiendo que leas la documentacion de unity y que aprendas programacion porque sino vas a tropezar muy seguido con cosas muy basicas.

lo hago todo tirando de documentacion
pero no entiendo que debo cambiar 

soy incapaz de ver el fallo y la solucion 

Noviembre 16, 2015, 01:05:17 PM #14 Ultima modificación: Noviembre 16, 2015, 01:26:52 PM por marketxu
hecho 
var levelToLoad : String;


function OnTriggerEnter(hit : Collider)
{
    Application.LoadLevel(levelToLoad);
}
Es que siempre me pasa lo mismo, lo he probado mil veces pero me equivoqué en tonterias.Muchas gracias por la orientación.Pd. existe alguna maera de cargar una escena sin destruir el player? (en consecuencia, mantener inventario etc). y digamos que si cargas una escena nueva completas la escena, y regresas a la anterior , apareceras en el punto de partida original del player, ¿como hago para que este punto cambie de lugar? 

Etiquetas: