Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: KevinLastra en Noviembre 21, 2016, 10:41:05 PM

Título: Mi escena carga extraño
Publicado por: KevinLastra en Noviembre 21, 2016, 10:41:05 PM
Muy buenas a todos tengo un problema bastante raro que nunca me habia pasado antes, résulta que al cargar alguna escena del juego aveces me vibra extrañamente el juego, investigue la razon y de alguna forma se generan varias veces el nivel y despues se destruyen es muy raro no se si soy el unico??
 
 
 
Grasias por su atencion..
Título: Mi escena carga extraño
Publicado por: GSG3D en Noviembre 21, 2016, 11:59:43 PM
Como cargas el nivel?
Título: Mi escena carga extraño
Publicado por: lightbug en Noviembre 22, 2016, 02:49:50 AM
Te vibra? como un cameraShake ponele cuando cae una bomba en un juego? algo asi?
Título: Mi escena carga extraño
Publicado por: musaranya en Noviembre 22, 2016, 09:14:27 AM
Otra posible causa serían los colliders. Si instancias al player "dentro" de una pared o del suelo u otro objeto con el que puede colisionar (vegetación, etc) entonces se puede producir este efecto. Intenta instanciar al player en el aire o desactivar las colisiones a ver qué pasa
Título: Mi escena carga extraño
Publicado por: KevinLastra en Noviembre 22, 2016, 01:28:52 PM
cargo la escena asi:
 

int leveltoload;
void nivel (){
   SceneManager.LoadLevel(leveltoload);
}

 
 
 
no es por colliders ni por camara shaker la vibracion es al instante del inicio es solo un momento de ahi va todo normal, me doy cuenta de que se crea en la barra de objetos 5 veces el nivel 2 digamos.
 
Título: Mi escena carga extraño
Publicado por: kingtrase en Noviembre 22, 2016, 02:01:06 PM
tienes script en la camara? para seguir al player me refiero, pasanoslo a ver como es, igual puede ser a la hora de orientar la camara hacia el personaje.
Título: Mi escena carga extraño
Publicado por: KevinLastra en Noviembre 22, 2016, 02:13:32 PM
este es el codigo pero la verdad no creo que sea el error porque este codigo lo tengo desde el inicio y este error es mas reciente de la actualizacion de unity
 

private Vector2 velocity;
    public float smothTimeY;
    public float smothTimeX;
    public GameObject player;
    public bool Bound;
    public Vector3 minCamaraPos;
    public Vector3 maxCamaraPos;
 
    void Start () {
        player = GameObject.FindGameObjectWithTag("Player");
}


void FixedUpdate () {
        float posX = Mathf.SmoothDamp(transform.position.x, player.transform.position.x, ref velocity.x, smothTimeX);
        float posY = Mathf.SmoothDamp(transform.position.y, player.transform.position.y, ref velocity.y, smothTimeY);
        transform.position = new Vector3(posX, posY, transform.position.z);
        if (Bound)
        {
            transform.position = new Vector3(Mathf.Clamp(transform.position.x, minCamaraPos.x, maxCamaraPos.x),
                Mathf.Clamp(transform.position.y, minCamaraPos.y, maxCamaraPos.y),
                Mathf.Clamp(transform.position.z, minCamaraPos.z, maxCamaraPos.z));
        }
    }

 
 
Título: Mi escena carga extraño
Publicado por: kingtrase en Noviembre 22, 2016, 02:19:54 PM
Si crees que no es de este codigo, mira a ver si hay algun script de algun asset (puede ser si has descargado alguno) que altere la camara, de todas formas la variable Bound de tipo bool cuando la usas?, por que si no es llamada por otro script tienes codigo inaccesible en este script.
Título: Mi escena carga extraño
Publicado por: KevinLastra en Noviembre 22, 2016, 02:27:46 PM
el bound le paso a true de forma manual para que funcione, y no tengo ningun asset 
Título: Mi escena carga extraño
Publicado por: kingtrase en Noviembre 22, 2016, 02:30:26 PM
podrias hacer un video? y enseñarnos mejor?, y enseñar el inspector de camera.
 
O no puede ser que de alguna forma estes cargando el nivel dos veces? piensa que le das a play y se carga, y luego tu script de cargar se vuelve a ejecutar. ese puede que sea el problema
 
Prueba deshabilitando ese script y ejecuta el juego a ver, Un saludo, di si fue la solucion, voy a comer :)
Título: Mi escena carga extraño
Publicado por: KevinLastra en Noviembre 22, 2016, 02:39:07 PM

public bool Open = false;    //este bool es pasado a true en otro script al usar el boton enter
    public bool WithCollider;   //este bool lo coloco manualmente para otras situasiones
    public bool Starter;    //este es para un boton del inicio para que vaya al ultimo nivel iniciado cuando es true , cuando es false carga el nivel indicado
    public int levelToLoad;  //nivel indicado
    private AsyncOperation o;
    private GameMaster gm;
    void Start()
    {
        gm = GameObject.FindGameObjectWithTag("GameMaster").GetComponent<GameMaster>();
    }
void Update()
    {
        if (Open)
        {
            Load();
            Open = false;
        }            
    }
void Load()
    {
        if (Starter)
        {
            if (gm.Uno)
            {
                o = SceneManager.LoadSceneAsync(PlayerPrefs.GetInt("A",1));
            }
            if (gm.Dos)
            {
                o = SceneManager.LoadSceneAsync(PlayerPrefs.GetInt("B", 1));
            }
            if (gm.Tres)
            {
                o = SceneManager.LoadSceneAsync(PlayerPrefs.GetInt("C", 1));
            }
        }
        else
        {
            o = SceneManager.LoadSceneAsync(levelToLoad);    // starter = false
        }
       
    }
void OnGUI()
    {
            if (o != null)
            {
                GUI.Box(new Rect(0, Screen.height - 40, o.progress * Screen.width, 40), "");     //barra de progreso o carga de nivel
            }
    }
    void OnTriggerEnter2D(Collider2D col)
    {
        if (WithCollider) {
            if (col.CompareTag("Player"))
            {
                Open = true;
            }
        }
    }

 
este es el codigo que carga los niveles
Título: Mi escena carga extraño
Publicado por: kingtrase en Noviembre 22, 2016, 03:05:46 PM
has cargado la escena sin ese script? carga la escena del nivel donde te tiembla la camara, no la  escena de seleccion de nivel
Título: Mi escena carga extraño
Publicado por: KevinLastra en Noviembre 22, 2016, 03:18:31 PM
no es un nivel especifico es cualquier nivel aveces si aveces no 
Título: Mi escena carga extraño
Publicado por: kingtrase en Noviembre 22, 2016, 03:47:26 PM
buff, entonces seria ver todo tu proyecto... no se me ocurre nada asi de pronto... voy a pensar un poco y te dire algo.
Título: Mi escena carga extraño
Publicado por: lightbug en Noviembre 22, 2016, 05:40:37 PM
mmm podria ser que en Start no estas inicializando Open, entonces cuando cargas un nivel (despues de Open()) el objeto se borra, se carga uno nuevo y no llega a ponerse en false ..?::?
 
Proba hacer esto el Open y el update me parece que estan de mas
 
podes hacer eso dentro del OnTriggerEnter y eliminas el update, a ver que pasa
 

void OnTriggerEnter2D(Collider2D col)
    {
   if (col.CompareTag("Player")){            
           if (WithCollider) {                        
                 Load();
            }
        }
    }

 
Como tenes las escenas configuradas? o sea como es el gameMaster ese?, pone una imagen en sceneView con el objeto "cargador de escenas" seleccionado cosa de ver todo lo que tiene
 
Saludos