Noticias

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

Mover un objeto a una direccion aleatoria

Iniciado por NahuuXGames, Mayo 21, 2015, 06:24:23 AM

Tema anterior - Siguiente tema
hola, necesitaba una ayuda, estoy creando un juego y necesito hacer que el enemigo (una mosca) se mueva aleatoriamente (random) por una habitacion u escenario, yo tengo este script 

var movimiento : int;

function Start () {
    movimiento = Random.Range(0,4);
    print(movimiento);
}

function Update(){
    if (movimiento == 0){
        transform.Translate(Vector3.forward * 5 * Time.deltaTime);
    }
    else if (movimiento == 1){
        transform.Translate(Vector3.back * 5 * Time.deltaTime);
    }
    else if (movimiento == 2){
        transform.Translate(Vector3.up * 5 * Time.deltaTime);
    }
    else if (movimiento == 3){
        transform.Translate(Vector3.down * 5 * Time.deltaTime);
    }
}


pero el problema que tengo es que al personaje al que se lo agrego (la mosca) se mueve, pero solo se mueve un poquito. por ejemplo si en el var de moviemiento, esta el numero 2 que vendria a ser el de subir (up) la mosca sube, pero solo un poquito y alli se queda, al igual que si le pongo el 0, o el 1, o el 3, se mueve un poquito para el lado correspondiente pero solo un poquito y alli se queda. y yo necesito que se mueva en algunas de esas direcciones hasta colicionar, pero o que hace es moverse unos centimetros para la direccion marcada y alli se queda
 

veo que has visto esto porque has comentado ahi:
 

 
 
Acabo de probar el script, y se mueve hasta el infinito, osea que el código no es lo que da el fallo...  
 
de todas formas podrias provar lo de las maquinas de estado
 
https://unity3d.com/es/learn/tutorials/modules/beginner/5-pre-order-beta/state-machine-behaviours" rel="external nofollow">https://unity3d.com/es/learn/tutorials/modules/beginner/5-pre-order-beta/state-machine-behaviours

En ves de transforn
Utiliza rigigtbody.velocity ese es para el movimiento , ademas tienes que hacer que la condición sea constante hasta cierto punto

Etiquetas: