Noticias

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

Movimiento Aleatorio y Direccionamiento

Iniciado por Dany3d, Abril 18, 2016, 06:34:51 PM

Tema anterior - Siguiente tema
Que tal, voy comenzando en esto de Unity y von mi proyecto base quiero mover objetos aleatoriamente, encontré un codigo que funciona muy bien:var target:Vector3; var timer:float; var sec:int; function Start () {  target = ResetTarget();  sec=ResetSec(); }  function Update () { timer+=Time.deltaTime; if(timer>sec){ target=ResetTarget(); sec=ResetSec(); } transform.Translate(target*10*Time.deltaTime); } function ResetTarget():Vector3{     return Vector3(Random.Range(-2.0,2.0),Random.Range(-2.0,2.0),Random.Range(-2.0,2.0)); } function ResetSec():int{     timer =0;     return Random.Range(1,3); } el asunto es que quiero hacer, es que tambien gire en la dirección a la que se dirige, alguien me podría ayudar.

prueba look at para mirar algo, o quaternion para hacer que gire

Tomas la dirección restando las dos posiciones, la del target y la actual, luego utilizas un método de interpolación de rotaciones.  

Ya probe usando look at y Quaternion.LookRotation el asunto es que esos usan como referencia algun punto ageno al objeto y lo que yo quiero es que se direccione independiente ya que mi idea es poner digamos varias gallinas en movimiento aleatorio que se muevan por el corral.Trate de calcular el ángulo con Mathf.Atan2 pero me da error
        Vector3 relative = transform.InverseTransformPoint(target.position);
        float angle = Mathf.Atan2(relative.x, relative.z) * Mathf.Rad2Deg;
        transform.Rotate(0, angle, 0);

var Rot = Quaternion(target.Position - transform.Position);
transform.rotation =Quaternion.Lerp(transform.position,Rot,5*Time.deltaTime);
 

Pues no se que me está faltando o si lo estoy colocando en el lugar equivocado pero al poner el código anterior me da el error "bce0024" The type 'UnityEngine.Vector3' does not have a visible constructor that matches the argument list '(UnityEngine.Vector3)'.Qué esta faltando.

Dany, el ejemplo que di es descriptivo, no debería funcionar tal como esta, pero así tenes una idea de que deberías hacer, si no entiendes el error entonces deberías tomar unas clases de programación, te lo digo sin ánimos de ofender.  

Etiquetas: