Noticias

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

GameObject enfrente de otro GameObject

Iniciado por Cristian07, Noviembre 05, 2015, 09:53:25 PM

Tema anterior - Siguiente tema
Existe de alguna manera de saber si algún GameObject está en frente a otro GameObject??? 

Puedes, o hacer un raycast u obtener la diferencia de los dos vectores de position. La z te dirá si está delante o detrás por el signo.


Lo que no me queda claro de los Raycast es, qué parte del GameObject le preguntas exactamente que toque con el otro? Su centro, o uno de sus vértices/lados, o qué? Es decir, ¿Qué suele ser más eficiente?

no se entiende muy bien tu duda pioj ... en un raycast no hay ningun objeto que toque con otro. es como un puntero laser que se puede utilizar a modo de sonar, lanzas un rayo desde una posicion determinada y si choca contra algo es que ese algo esta en la trayectoria del rayo pero puede estar a 1 metro o a 1000 metros; en caso afirmativo, despues hay que consultar el hit.distance para ver a que distancia se encuentra.

[quote author=Cristian07" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="34369" data-ipsquote-contentcommentid="123127">Existe de alguna manera de saber si algún GameObject está en frente a otro GameObject??? [/quote]Es muy fácil, aquí tienes http://docs.unity3d.com/ScriptReference/Transform.InverseTransformPoint.html" rel="external nofollow date=1446756805]http://docs.unity3d.com/ScriptReference/Transform.InverseTransformPoint.html 

FNK Games  Games Developer  -  Juegos realizados en Unity para iOS y Android



Su centro creo yo @pioj, el punto que te aparece en el inspector diría.

Si es delante o detrás, yo creo que es más sencillo la z de position. Ahora bien, si habla de enfrente con determinado ángulo de visión, entonces raycast.

Hombre, en esto de vectores usar la z es relativo... si quieres saber si está justo en frente o detrás lo mejor es un raycast, si quieres saber si está más o menos delante con un pequeño margen un Vector3.Dot() creo yo.

Vale, el dot de los dos vectores más lógico. Es que creo que un raycast, para objetos en cierta distancia y ángulo, perfecto, sin embargo para un objeto enfrente (que entiendo que implica poca distancia) creo que es complicarse.

Etiquetas: