Tengo un problema al intentar implementar el “OnCollisionEnter2D”, el intelisence no me lo detecta, y aun escribiendolo a mano y corriend...

Jonathan Rangel Bernal

Jonathan Rangel Bernal

Pregunta
studenthace 7 años

Tengo un problema al intentar implementar el “OnCollisionEnter2D”, el intelisence no me lo detecta, y aun escribiendolo a mano y corriendo el juego, no detecta el codigo, que estoy pasando por alto aqui?

public class PointZone : MonoBehaviour { private void OnCollisionEnter2D(Collision2D collision) { Debug.Log("Collision"); } private void OnTriggered(Collider2D collider) { Debug.Log("Triggered"); } }```
5 respuestas
para escribir tu comentario
    Javier Cogo

    Javier Cogo

    studenthace 7 años

    A mi me pasaba que en consola no me detectaba el impacto de la bola o el pasar de largo…

    al modificar las variables “collision” y “trigger” a minuscula lo empezo a hacer…

    Jonathan Rangel Bernal

    Jonathan Rangel Bernal

    studenthace 7 años

    Muchas gracias a todos por sus respuestas, hice una busqueda completa sobre todo, y no pude localozar el porque del error, mi codigo si funcionaba (excepto el detalle de que no puse 2D en el OnTriggered2D la primera vez), el detalle de que el intelisesnse no me diga que no existe esa funcion derivada del “MonoBehaviour”, que claramente la clase se extiende, recargue todo el proyecto despues de reiniciar mi maquina, y por lo menos ahora el codigo de la colision y el trigger se ejecutan correctamente, lo unico que puedo pensar es que es algun problemilla (bug) del VS2017.

    Gracias nuevamente a todos!

    Josue Gutierrez

    Josue Gutierrez

    studenthace 7 años

    Aparte de lo que ya dijeron, puedes verificar que la casilla Body Type del Rigidbody2D NO este como “Kinematic”

    Abdel Mejia

    Abdel Mejia

    studenthace 7 años

    Primero debes de verificar que tengas el script en el GameObject.

    Siguiente paso, verifica que ese GameObject tenga alguna colision de componente.

    En caso que quieras verificar con el metodo OnCollisionEnter2D, verifica que no tenga el checkbox de Istrigger activo.

    En caso de aun no funcionar, verifica en el metodo con una condición.

    For example.

    void OnCollisionEnter2D (Collision2D collision) { if (collision.gameObject.GetComponent<BallBehaviour>()) { Debug.Log("Collision Ball"); } }
    Abdel Mejia

    Abdel Mejia

    studenthace 7 años

    Primero debes de verificar que tengas el script en el GameObject.

    Siguiente paso, verifica que ese GameObject tenga alguna colision de componente.

    En caso que quieras verificar con el metodo OnCollisionEnter2D, verifica que no tenga el checkbox de Istrigger activo.

    En caso de aun no funcionar, verifica en el metodo con una condición.

    For example.

    void OnCollisionEnter2D (Collision2D collision) { if (collision.gameObject.GetComponent<BallBehaviour>()) { Debug.Log("Collision Ball"); } }
Curso de Programación de Videojuegos 2D con Unity - 2018

Curso de Programación de Videojuegos 2D con Unity - 2018

Unity es la plataforma de desarrollo de videojuegos más usada en el mundo. Hay más videojuegos creados para 2D que en cualquiera otra tecnología. Unity 2D te permite desarrollar videojuegos para teléfonos móviles, computadoras y tablets, llegando a audiencias mucho mas amplias. En este curso oficial licenciado y ofrecido por Unity, aprenderás a desarrollar tu primer videojuego en 2D, con mecánicas innovadoras que engancharán a tu audiencia.

Curso de Programación de Videojuegos 2D con Unity - 2018
Curso de Programación de Videojuegos 2D con Unity - 2018

Curso de Programación de Videojuegos 2D con Unity - 2018

Unity es la plataforma de desarrollo de videojuegos más usada en el mundo. Hay más videojuegos creados para 2D que en cualquiera otra tecnología. Unity 2D te permite desarrollar videojuegos para teléfonos móviles, computadoras y tablets, llegando a audiencias mucho mas amplias. En este curso oficial licenciado y ofrecido por Unity, aprenderás a desarrollar tu primer videojuego en 2D, con mecánicas innovadoras que engancharán a tu audiencia.