Noticias

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

no coliciona un objeto

Iniciado por tomas6789, Febrero 19, 2016, 05:01:06 PM

Tema anterior - Siguiente tema
la script idea de la script es que un enemigo se mueva aleatoriamente en el mapa pero al chocar con siertas zonas que vuelva, la script que arme abajo la dejo pero tiene una pequeña falla que es que cuando coliciona con esos "bordes" el perimetro, la esfera no vuelve, que esta mal y como lo podria solucionar se les ocurre algo? desde ya muchas gracias.#pragma strict
var movimiento : int;
var time : float;
var tiempo : boolean = false;
function Start () {}function Update () {
    if(gameObject.tag == "enemigo"){
        if(tiempo == true){
            movimiento = Random.Range(0,4);
        }
        time += Time.deltaTime;
        if(time>=0.55){
            time = 0;
        }
        if(time>=0.5){
            tiempo = true;
        }
        else if (time<0.5){
            tiempo = false;
        }
        if (movimiento == 0){
            transform.Translate(Vector3.forward * 15 * Time.deltaTime);
        }
        else if (movimiento == 1){
            transform.Translate(Vector3.back * 15 * Time.deltaTime);
        }
        else if (movimiento == 2){
            transform.Translate(Vector3.right * 15 * Time.deltaTime);
        }
        else if (movimiento == 3){
            transform.Translate(Vector3.left * 15 * Time.deltaTime);
        }
    }
}
function OnTriggerEnter(){
        if(movimiento == 0){
            movimiento = 1;
        }
        if(movimiento == 1){
            movimiento = 0;
        }
        if(movimiento == 2){
            movimiento = 3;
        }
        if(movimiento == 3){
            movimiento = 2;
        }
    }

Añade una instruccion return; dentro del bloque if para salir function OnTriggerEnter(){
        if(movimiento == 0){
            movimiento = 1;             return;
        }
        if(movimiento == 1){
            movimiento = 0;            return;
        }
        if(movimiento == 2){
            movimiento = 3;            return;
        }
        if(movimiento == 3){
            movimiento = 2;
        }
    }


Pequeña duda :if(gameObject.tag == "enemigo"){ ??? Si el mismo objeto del código tiene la etiqueta "enemigo" <- No entiendo la razón de ser de esta.También recomiendo el método "Else" por si quieres continuar haciendo más largo el código.if(movimiento == 0){
            movimiento = 1;
        }
        else if(movimiento == 1){
            movimiento = 0;  
        }
       else  if(movimiento == 2){
            movimiento = 3;   
        }
       else  if(movimiento == 3){
            movimiento = 2;
        }

Jorge Rodriguéz Industries ® ©



Etiquetas: