You are on page 1of 11
soe CColiders: deteccién de calisones en videojuego Unity 2D - Academia Android Blog ‘#¥ > Nivel Medio-Avanzado, Videojuegos > Colliders: deteccién de colisiones en videojuego academia android Colliders: deteccion de colisiones en videojuego Unity 3D © 16/09/2016 © Nivel Medio-Avanzado, Videojuegos Post Series: Conociendo Unity3D (VII) 4. Creacién de escenas y niveles en videojuego Unity 3D 2, Colors: deteccion de colisiones en videojuege Hai Sb. 3. Componentes para creacién de interfaz de usuario en Unity 3D 4, GUI Texture y GU! Text: ejemplo implementacién en videojuego 5. Creacién de videojuego en Unity 3D (I): estructura y elementos 6. Creacidn de videojuego en Unity 3D (II): scripts 7. Creacién de videojuego en Unity 3D (III): video 8. Generar ejecutable de videojuego Unity: ejemplo plataforma Android hitps:/academiaandroid.comicolidersdeteccion-clisiones-juego-unity-34! amt sno18 CColiders: deteccién de calisones en videojuego Unity 2D - Academia Android dos métodos que permiten establecer el comportamiento cuando se producen dichas colisiones Una de las tareas mas comunes cuando creamos un videojuego es detectar las colisiones que se producen entre los diferentes elementos que intervienen en él, que proporcionan gran parte de la Iégica de interaccién del jugador con el entorno que le rodea en la escena. Visualmente se puede describir como el momento en el cual dos objetos se superponen, ocupando cada uno parte del area del otro objeto con el que colisionan. Vernos pues una serie de conceptos relacionados con los, componentes que intervienen para la deteccién de una colisién entre dos objetos Colliders (Colisionadores) Son Areas que envuelven al GameObject, utilizadas para detectar las colisiones entre diferentes objetos del juego Un collider est formado, por un lado, de una determinada forma, que se recomienda sea lo mas ajustada a la forma del objeto, y por otro lado, de un determinado material fisico, que proporcionen caracteristicas de rebote o friccién. Por defecto en Unity podemos encontrar materiales fisicos a través de la ruta: Standard Assets > Physic Materials > Bouncy, Ice, Metal, Rubber y Wood A continuacién, se describiran los distintos tipos de colliders que se pueden implementar: Box Collider Colisionador de caja que define un area con forma de cubo alrededor del objeto. hitps:/academiaandroid,comicolidersdeteccion-clisiones-juego-unity-34! aint sno18 Inspector: CColiders: deteccién de calisones en videojuego Unity 2D - Academia Android (Mbox collider Ge fe | edit collider Is Trigger oO Materal [None (Physic Material) | © ene xo___|yfusa_lze__] size as |) — Propiedades: Is Trigger Material center ize Si esta opcién est activa, permite desencadenar eventos, ademas de ser ignorado por el motor de fisicas Hace referencia al material fisico utilizado para su interaccién con el resto de colliders Posicién del Collider en el espacio local del objeto. Tamajio del Collider en las direcciones X, Y, Z. hitps:/academiaandroid,comicolidersdeteccion-clisiones-juego-unity-34! itt sno18 coli Este componente podr: través de la ruta Add Ci Collider de la ventana i Scene: Inspector: y @Msphere colli Is Trigger wateral Center Radius Propiedades: PropiedadFuncion Is Trigger Siesta opci iders: dateccién de calsiones an videojuego Unity 3D ~ Academia Android 4 afiadirse a un GameObject a ‘omponent > Physics > Sphere inspector del objeto. oe #. | edit cotider [None (Physic Maternal) | ©| x00 vies 121 i6n esta activa, permite desencadenar eventos, ademas de ser ignorado por el motor de fisicas. hitps:/academiaandroid,comicolidersdeteccion-clisiones-juego-unity-3! an sno18 CColiders: deteccién de calisones en videojuego Unity 3D - Academia Android Capsule Collider Colisionador de capsula que define un area con forma de cépsula o elipsoide alrededor del objeto. Este componente podra afiadirse a un GameObject a través de la ruta Add Component > Physics > Capsule Collider de la ventana inspector del objeto. Scene: Inspector: /y § Mcapsule Collider 2 | edit colder igger o Natenal (None (Physic Material) | 0| Center xi yoas 21 _| Radius Oe Height 1.03 Birection Ais 3 A hitps:/academiaandroid,comicolidersdeteccion-clisiones-juego-unity-34! sit sno18 CColiders: deteccién de calisones en videojuego Unity 2D - Academia Android sTrigger Si esta opcién esta activa, permite desencadenar eventos, ademas de ser ignorado por el motor de fisicas. [Material Hace referencia al material fisico utilizado para su interaccién con el resto de colliders. Icenter _Posicién del Collider en el espacio local del objeto. Radius ——_Establece la anchura del Collider. Height indica la altura del Collider. [Direction Permite definir la orientacién del eje longitudinal, dentro del espacio local del objeto. Mesh Collider Colisionador de malla. El colisionador se acopla ala malla del objeto al que se le asigna. Es una forma de obtener colisiones de manera muy precisa, pero consume muchos recursos. Este componente podré afiadirse a un GameObject a través de la ruta Add Component > Physics > Mesh Collider de la ventana inspector del objeto. Scene: hitps:/academiaandroid,comicolidersdeteccion-clisiones-juego-unity-34! et sno18 CColiders: deteccién de calisones en videojuego Unity 2D - Academia Android Propiedades: PropiedadFuncion Is Trigger Siesta opcién esta activa, permite desencadenar eventos, ademas de ser ignorado por el motor de fisicas. [Material Hace referencia al material fisico utilizado para su interaccién con el resto de colliders. Mesh Referencia a la malla utilizada para la deteccién de colisiones. smooth Al activar esta opcién, permite suavizar las sphere _colisiones con la malla referenciada. {collisions convex _Sise activa esta opcién, posibilita la deteccién de colisiones con otro Mesh Collider. Rigidbody Este componente permite afiadir al GameObject algunas caracteristicas que tendria un cuerpo en la realidad, como podrian ser masa, gravedad, friccién, etc. Es muy til para hacer que objetos de la escena interaccionen entre si. Es necesario establecer este componente cuando se desea detectar colisiones entre dos objetos (al menos uno de los dos debe contenerlo). Este componente podré afiadirse a un GameObject a través de la ruta Add Component > Physics > Rigidbody de la ventana inspector del objeto. Inspector: hitps:/academiaandroid,comicolidersdeteccion-clisiones-juego-unity-34! mm sno18 CColiders: deteccién de calisones en videojuego Unity 2D - Academia Android Propiedades: PropiedadFuncién Mass Indica la masa del objeto en unidades arbitrarias. Drag Resistencia del objeto al aire. Al establecer su valor en 0, se indica que no existe resistencia Angular A diferencia de la propiedad Drag, el valor [Drag indicando permite controlar la resistencia del objeto al aire con un determinado angulo de rotacién. lUse Gravity Al activar esta opcién, el objeto se vera afectado por la gravedad. ls Kinematic Si esta opcién se encuentra activada, el objeto} no se vera sometido por el motor de fisicas, y sélo podra manipularse el componente Transform. Interpolate Utilizado para controlar movimientos inesperados del componente Rigidbody asociado al objeto. Se pueden establecer los valores de: + None: no se aplica ninguna interpolacién + Interpolate: suavizado del componente Transform con respecto al Transform del frame anterior + Extrapolate: suavizado del componente Transform con respecto al Transform del frame siguiente {collision _Posibilita la deteccién de colisiones con [Detection objetos que se muevan a gran velocidad, hitps:/academiaandroid,comicolidersdeteccion-calisiones-juego-unity-34! sno18 CColiders: deteccién de colisones en videojuego Unity 20 - Academia Android colisiones con el resto de colliders definidos en la escena + Continuous: utilizado para la deteccién de colisiones con componentes de tipo MeshCollider estaticos sin Rigidbody * Continuous Dynamic: utilizado en objetos| para la deteccién de colisiones fijados en Continuous y Continuous Dynamic. Muy til para establecer en objetos que se muevan con rapidez Se recomienda establecer la deteccién de colisiones fijado a Discrete. |Constraints Permite establecer restricciones de movimiento al componente Rigidbody definido, Se pueden establecer los valores de: + Freeze Position: detiene los movimientos en el mundo X, Y, Z del Rigidbody, de forma selectiva + Freeze Rotation: detiene la rotacién en el mundo X, Y, Z del Rigidbody, de forma selectiva Métodos para tratar colisiones Vemos dos métodos con los que podemos establecer el comportamiento o las acciones que tendran lugar en el Juego cuando se produzca una colisién. Por ejemplo, cambio en las puntuaciones, decremento o incremento de vida, juego finalizado etc. OnCollisionEnter() Es quiz uno de los métodos predefinidos mas utiles. A este método se le llama cada vez que el objeto que lleva tps lacademiaandroid comicoliders-dteccion-

You might also like