Noticias

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

Cambio de escena

Iniciado por trifasico, Febrero 26, 2018, 05:09:00 PM

Tema anterior - Siguiente tema
Febrero 26, 2018, 05:09:00 PM Ultima modificación: Febrero 26, 2018, 05:19:46 PM por trifasico
buenas lo primero decir que yo no soy programador soy aficionado y se programar mas o menos, hace tiempo no tenia este problema ya que con java lo hacia perfectamente, mi problema es que ahora con c# no me cambia la escena os dejo el codigo que e usado y ver si me pueden decir donde me equivoco o como lo harian ustedes, os explico lo que quiero hacer. Lo que hago es que cuando llegue a cierto lugar se cambie de escena entrando en un objeto invisible y pase de la escena 1 a la escena 2 como si te hubieses pasado el nivel y vas a comenzar el siguiente nivel. aqui os dejo el codigo:
 

este lo pille de internet para ver si me funcionaba
using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;
public class Cambioescena : MonoBehaviour
{
    [SerializeField] private string loadLevel;
    void OnTriggerEnter (Collider other)
    {
        if (other.CompareTag("Jugador"))
        {
            SceneManager.LoadScene(loadLevel);
        }
    }
}
 
este es otro codigo que e usado
 
using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;
public class CambiarEscena : MonoBehaviour
{
    void OnTriggerEnter (Collider other)
    {
        if (other.tag == "Jugador")
        {
            SceneManager.LoadScene("2");
        }
    }
}

 
e estado mirando por el foro y no e encontrado algo asi que me sirva de ayuda por eso e creado este post, si hay algun post avisen y discupen por crear otro igual. gracias!
 
 
 
pd: si sirve de ayuda uso como jugador un coche "el que trae unity por defecto" ya que son pruebas asta que tenga el proyecto algo mas avanzado y lo cambie, la version de unity que utilizo es 5.6.5f1 no utilizo la version 2017 porque nose porque pero no me deja compilar en android, me dice que no funciona la jdk pero con la version 5 no me da ningun problema y si que me deja compilar, si no se entiende bien lo que quiero hacer puedo dejar un pequeño video o imagenes que lo expliquen mejor

Febrero 26, 2018, 05:21:11 PM #1 Ultima modificación: Febrero 26, 2018, 05:30:57 PM por lightbug
Hola, algunas cosas que se me ocurren (el código se podría decir que está bien)
 
1 - te voy a decir lo mismo que digo siempre, imprimí todo!!!! te puede estar todo andando a la perfeccion menos el trigger, o erraste en el tag, o las colisiones ni siquiera se dan porque no son válidas, o se dan pero bla bla bla... siempre asegurate que se entra al trigger (por lo menos)
 

void OnTriggerEnter (Collider other)
    {
   print("entro al trigger");
        if (other.CompareTag("Jugador"))
        {
      print("se dio el tag");
            SceneManager.LoadScene(loadLevel);
        }
    }

 
2- Fijate que en la documentación dice "Loads the Scene by its name or index in Build Settings. ", es decir, ya que carga o con string o con un int de índice metete al "build settings" en "File" y agregá la escena a la lista.
 
3 - Si por cualquier cosa todavía no te funciona probá cargando la escena por index y no por string, solo a modo de prueba, una vez estuve 1 semana entera con lo mismo, probé pasar el index y funcionó, aunque en su momento puede que haya sido un bug. Igual no perdés nada.
 
 
 
para agregar en la doc también dice " The given sceneName can either be the last part of the path without .unity extension..." osea "2" ... " or the full path still without the .unity extension. " supongo que será algo así por ej "TuCarpeta1/Escenas/2" ... pero de todos modos creo que debe estar incluida en tus build settings.
 
Saludos
 
 

Febrero 26, 2018, 06:39:34 PM #2 Ultima modificación: Febrero 26, 2018, 06:52:46 PM por trifasico
lo primero gracias por la ayuda, el trigger esta activado o eso creo seria algo asi "box collider(ya que uso un cubo) en la opcion is trigger(esta activado)". el tag si se refiere a mi jugador "coche" tiene puesto el tag Jugador. en el build settings tengo cargado 3 escenas por este orden menu-1-2 "los numero son las escenas del juego"  por index me imagino que te refieres a cargar las escenas por orden del build settings y no por el nombre que yo asigno a la escena y seria algo asi SceneManager.LoadScene(0); solo que el numero tiene que ser el que nos da el editor" aun no lo e probado asta la noche que tengo tiempo, las escena las tengo guardadas asi rally/Assets/ y dentro de assets estan las escenas. el print me imagino que sera para que me salte el mensaje cuando entro y asegurarme de que si entro, entrar entra y al 100% porque pense que igual tenia que cubrir el personaje al 100% y no solo vale tocarlo asi que el cubo lo hice super grande que caben 3 coches perfectamente. esta noche cuando llegue probare a cargarlo por index y aviso si me funciono asi y muchas gracias!

Lo de que no te deja el 2017 copilar en Android utiliza jdk 8.

Etiquetas: