Jump to content
tomas6789

no coliciona un objeto

Recommended Posts

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;
        }
    }

Share this post


Link to post
Share on other sites

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;
        }
    }

Share this post


Link to post
Share on other sites

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;
        }

Share this post


Link to post
Share on other sites

UnitySpain © Todos los derechos reservados 2020
×
×
  • Create New...