Noticias

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

Localizar un target.

Iniciado por Miki, Mayo 26, 2015, 02:10:34 AM

Tema anterior - Siguiente tema
Saludos.
 
Bueno, en esta ocasion, teng un pequeño problema con la localizacion de un objetivo, me explico, ejemplo que tengo una trampa, la cual va a realizar una accion cuando el Personaje este en una posicion exacta en los ejes X y Y. o que entre en un rango espesificado por mi en los rangos X y Y, antes o hacia de una manera muy sencilla y facil... pero de la nada el metodo que yo utilizaba como que no me funciona... este es mi metodo:

 
public class EnemyWalker : MonoBehaviour {
    public Transform PJ;   //Target, en este caso el personaje.
    private Vector3 PjPos;   //Variable Vector3 que me almacenara la pocision que hay entre el target y la trampa(en este caso un mob).
    void Start () {}
    void Update () {
       PjPos=PJ.transform.position-transform.position; //esta es la linea de codigo que me dice exactamente la distancia restante entre los puntos
       Debug.Log(PjPos);  //simplemente para mostrar por pantalla y poder guiarme...
    }
}
 
 
el problema es que la pocision no cambia en ningun momento, me tira una posicion unicial y ahi se queda, en este caso es (-19.7, 0.1, -9.0)  aunque mueba el target para todos los lados esa pocision que me lanzo no cambia... antes me funcionaba eso, hasta llegue a hacer un par de trampas y un mob que me atacaba cuando estaba serca de el y si estaba lejos me ***guia... 

alguien me podria decir que estoy haciendo mal por favor o si no decirme otro metodo para poder hacer mi cometido? lo necesito de veras.. 


Gracias de antemano :/
 

Mayo 26, 2015, 07:34:39 PM #1 Ultima modificación: Mayo 27, 2015, 07:45:21 PM por GSG3D
Estas restando dos Vectores, por lo cual te da la direccion resultante, utiliza Vector3.distance().
Por lo cual mira la documentacion de Unity que ed lo primero que de debe hacer.

Vector3.Distance() devuelve la distancia entre 2 posiciones, en Float. Aprovéchalo.

Muchas gracias por sus respuestas, utilice el vectro3.Distance. me funciono perfectamente, muchisimas gracias

Etiquetas: