Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: NahuuXGames en Mayo 21, 2015, 06:24:23 AM

Título: Mover un objeto a una direccion aleatoria
Publicado por: NahuuXGames en Mayo 21, 2015, 06:24:23 AM
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
 
Título: Mover un objeto a una direccion aleatoria
Publicado por: yoguix1 en Mayo 21, 2015, 01:43:58 PM
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
Título: Mover un objeto a una direccion aleatoria
Publicado por: Ness en Mayo 21, 2015, 03:42:54 PM
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