JuanchiBM 2 Report post Posted July 24, 2020 PRIMER BUG: Mi problema es este, en este juego, cuando salto, programe que el personaje no se pudiera mover en el aire, cual es el problema? que, ademas del piso, existe otro collider, la caja, y al rozar la caja con el pie en medio del aire, ya te podes mover mientras estas flotando, lo logico seria hacer un "OnCollisionExit2D" Pero al hacer eso, ya no puedo empujar la caja, porque claro, al dejar de tocar la caja ya no me puedo mover y se me queda el personaje estatico, por lo que si moves la caja, no te podes despegar, mi idea seria crear un temporizador, por asi decirlo "Si no esta 1 minimo segundo tocando la caja, air = true" (Air es la variable que cree para que el personaje no se mueva en el aire) A continuacion les dejo el codigo (Solido representa la caja y Piso la plataforma) bool canJump = true; bool DontMove = true; public bool air; if (air == true) { gameObject.GetComponent<Animator>().SetBool("Moverse", false); gameObject.GetComponent<Rigidbody2D>().drag = 0; DontMove = false; canJump = false; if (canJump == false) { gameObject.GetComponent<Animator>().SetBool("Saltar", true); } private void OnCollisionEnter2D(Collision2D collision) { if (collision.transform.tag == "Piso") { gameObject.GetComponent<Rigidbody2D>().drag = 1; DontMove = true; canJump = true; gameObject.GetComponent<Animator>().SetBool("Saltar", false); air = false; } if (collision.transform.tag == "Solido") { gameObject.GetComponent<Rigidbody2D>().drag = 1; DontMove = true; canJump = true; gameObject.GetComponent<Animator>().SetBool("Saltar", false); air = false; } SEGUNDO BUG: Cuando ejecuto el programa en Unity, puedo pasar por el puente tranquilamente, pero cuando buildeo la aplicacion, al tocar el puente mi personaje queda estatico y no me puedo mover, alguien sabe porque?, el unico codigo que tiene mi puente es este: (canJump permite al usuario saltar, DontMove permite al usuario moverse, al estar en diagonal el puente, le cambio el Lineal Drag y la Gravedad) private void OnCollisionEnter2D(Collision2D collision) { if (collision.transform.tag == "PuenteIzqAr") { gameObject.GetComponent<Rigidbody2D>().drag = 3f; DontMove = true; canJump = true; gameObject.GetComponent<Animator>().SetBool("Saltar", false); air = false; gameObject.GetComponent<Rigidbody2D>().gravityScale = 0.5f; } } private void OnCollisionExit2D(Collision2D collision) { if (collision.transform.tag == "PuenteIzqAr") { gameObject.GetComponent<Rigidbody2D>().gravityScale = 3f; } } Share this post Link to post Share on other sites
paio458 1 Report post Posted July 27, 2020 Hola, no entiendo bien y trato de acerme la idea de la escena pero solo para darte idea si sirbe de ayuda. Has pensado en usar los layers? En el primer problema por ejemplo que el piso este en un layer "Piso" por ejemplo y ver si tu psj colisiona con un objeto en esa capa, de no ser asi, podras colisionar con otros en otras capas pero no lo dejaras moverse aun. Espero que pueda ser de ayuda. Saludos Share this post Link to post Share on other sites
JuanchiBM 2 Report post Posted July 27, 2020 12 hours ago, paio458 said: Hola, no entiendo bien y trato de acerme la idea de la escena pero solo para darte idea si sirbe de ayuda. Has pensado en usar los layers? En el primer problema por ejemplo que el piso este en un layer "Piso" por ejemplo y ver si tu psj colisiona con un objeto en esa capa, de no ser asi, podras colisionar con otros en otras capas pero no lo dejaras moverse aun. Espero que pueda ser de ayuda. Saludos No lo habia pensado, voy a probarlo y te aviso, gracias 😄 Share this post Link to post Share on other sites
JuanchiBM 2 Report post Posted July 27, 2020 14 hours ago, paio458 said: Hola, no entiendo bien y trato de acerme la idea de la escena pero solo para darte idea si sirbe de ayuda. Has pensado en usar los layers? En el primer problema por ejemplo que el piso este en un layer "Piso" por ejemplo y ver si tu psj colisiona con un objeto en esa capa, de no ser asi, podras colisionar con otros en otras capas pero no lo dejaras moverse aun. Espero que pueda ser de ayuda. Saludos Bueno, lo intente pero todavia soy muy manco, voy a buscar tutoriales de como usar las layers pero x ahora no me sale ahre jajajja 1 Share this post Link to post Share on other sites