Diferencia entre revisiones de «Unity Detección de colisiones. Colliders»

De MediaWiki
Ir a la navegación Ir a la búsqueda
Línea 60: Línea 60:
  
  
−
* Veamos un ejemplo de esto segundo:
+
* Veamos un ejemplo de esto segundo.
  
 +
<gallery caption="Ajustando el tamaño del Collider" widths="350" heights="300px" perrow="2">
 +
Image:Unity3d_gravedad_2.jpg| Descargamos de Unity si no lo hemos hecho antes algún prefab nuevo, por ejemplo [https://assetstore.unity.com/packages/3d/voxel-cars-prototype-79163 estos coches].
 +
Image:Unity3d_collider_8.jpg| Como vemos, el Collider del coche engloba todo el modelo, pero esto lleva consigo en que si el coche vuelca, no se comportará físicamente como debería, ya que el morro debería caer hacia adelante.
 +
Image:Unity3d_collider_9.jpg| Creamos un segundo Collider y ajustamos el primero para que coincida mejor con la forma del modelo. Podemos ver como ahora su forma se acomoda al comportamiento de un coche que ha caído...
  
 +
</gallery>
  
  
  
 +
 +
<br />
  
  

Revisión del 20:27 3 feb 2019

Introducción

  • Más información en:


  • En los juegos vamos a necesitar disponer de algún mecanismo que nos diga cuando dos objetos 'chocan'.
Ejemplo de uso:
  • Proyectiles de todo tipo (balas, misiles, láser,...)
  • Enemigos que van tras el protagonista
  • Abrir o cerrar puertas al acercarse / alejarse


  • Unity da solución a esto mediante el uso de Colliders.
Disponemos de varios tipos de 'colliders', pero los que consumen menos CPU para realizar cálculos son los denominados Primitives Colliders:
  • Esfera
  • Caja
  • Cápsula
Unity3d collider 1.jpg


Unity3d camara ray 1.jpg


  • Otro aspecto a tener en cuenta es que los Collider están íntimamente relacionados con los RigidBody, ya que el RigidBody hace uso de los Collider como base para producir los 'efectos' físicos, como choques, rotaciones,...



Creando Colliders

  • El Collider es un componente de un GameObject, por lo tanto sólo tenemos que escribir 'Collider' para ver todos los disponibles:
Unity3d collider 2.jpg
  • El collider tiene un tamaño y una posición la cual puede ser modificada de forma gráfica:



La forma importa

  • Como comenté antes, el Collider va a ser empleado tanto para determinar cuando dos GameObjects 'chocan' como para ser utilizad por el RigidBody para determinar el comportamiento físico del GameObject.
  • Dependiendo de nuestras necesidades, el Collider se tendrá que ajustar de forma lo más precisa al GameObject o no.
Por ejemplo, podría tener un Collider en forma de esfera con un tamaño más grande que el GameObject para determinar cuando un enemigo ataca al jugador. Sería su radio de acción.
Sin embargo, a nivel de el comportamiento físico, por ejemplo, al caer, querremos que los Collider se ajusten lo más posible al GameObject.


  • Veamos un ejemplo de esto segundo.









-- Ángel D. Fernández González -- (2018).