Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

¿Como detectar las puntas de los Cillider2D?

Iniciado por Ness, Agosto 24, 2016, 02:21:31 AM

Tema anterior - Siguiente tema
Estoy tratando de mandar varios raycast2D a la punta de cada vector en un juego en 2D pero no se como detectarlas las puntas.
 
 
 
mi pregunta 
 
¿Como detectar las puntas de los objetos Colliders2D?.

¿Te refieres a conseguir su posición en el espacio?


Bueno, tienes los datos en la clase Bounds. Independientemente de cada tipo de collider, todos los tipos de collider2D descienden de la clase collider2D y esta contiene una variable de tipo Bounds. Esta variable almacena datos acerca del tamaño y posición del collider.
 
Te muestro un ejemplo en C# para obtener las esquinas de un BoxCollider2D:

 
 

Collider2D collider = gameObject.GetComponent<Collider2D>();
Vector3 vAux = Quaternion.Euler(,,90) * collider.bounds.extents;
Vector3 corner1 = collider.bounds.max;
Vector3 corner2 = collider.bounds.min;
Vector3 corner3 = collider.bounds.center + vAux;
Vector3 corner4 = collider.bounds.center - vAux;

 


PD: no recuerdo bien si Bounds.center te da la posición global o relativa al transform. Si es lo segundo solo tendrias que sumar el vector transform.position a cada punto.

Etiquetas: