Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: Cristian07 en Noviembre 05, 2015, 09:53:25 PM

Título: GameObject enfrente de otro GameObject
Publicado por: Cristian07 en Noviembre 05, 2015, 09:53:25 PM
Existe de alguna manera de saber si algún GameObject está en frente a otro GameObject??? 
Título: GameObject enfrente de otro GameObject
Publicado por: iRobb en Noviembre 05, 2015, 10:12:31 PM
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.
Título: GameObject enfrente de otro GameObject
Publicado por: juanma_teso en Noviembre 05, 2015, 10:12:57 PM
Mira el primer ejemplo:http://docs.unity3d.com/ScriptReference/Physics.Raycast.html (http://docs.unity3d.com/ScriptReference/Physics.Raycast.html)
Título: GameObject enfrente de otro GameObject
Publicado por: pioj en Noviembre 05, 2015, 10:30:48 PM
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?
Título: GameObject enfrente de otro GameObject
Publicado por: Arthure en Noviembre 05, 2015, 10:47:43 PM
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.
Título: GameObject enfrente de otro GameObject
Publicado por: Mantis en Noviembre 05, 2015, 10:51:39 PM
[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  Título: GameObject enfrente de otro GameObject
Publicado por: juanma_teso en Noviembre 05, 2015, 11:05:06 PM
Su centro creo yo @pioj (//<___base_url___>/profile/18485-pioj/), el punto que te aparece en el inspector diría.
Título: GameObject enfrente de otro GameObject
Publicado por: iRobb en Noviembre 05, 2015, 11:25:15 PM
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.
Título: GameObject enfrente de otro GameObject
Publicado por: juanma_teso en Noviembre 05, 2015, 11:29:35 PM
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.
Título: GameObject enfrente de otro GameObject
Publicado por: iRobb en Noviembre 05, 2015, 11:34:18 PM
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.