sábado, 7 de febrero de 2015

Scripts IA Mobs

Inteligencia artificial basica:

var maximaVelocidad = 2.0;
var tiempoMinimoCaminando = 2.0;
var tiempoMaximoCaminando = 16.0;
var tiempoMinimoParado = 2.0;
var tiempoMaximoParado = 8.0;
var tiempoMinimoGirar = 4.0;
var tiempoMaximoGirar = 32.0;
var velocidadGiro = 160.0;
private var parado = true;
private var girando = false;
private var rotacion = 0.0;
private var girado = 0.0;
private var giradoTotal = 0.0;
private var tiempoCaminar = 0.0;
private var tiempoParar = 0.0;
private var tiempoGirar = 0.0;

function Update () {
    if (!girando) {
        if (tiempoGirar<=0.0) {
            tiempoGirar= Random.value*tiempoMaximoGirar;
            if (tiempoGirar < tiempoMinimoGirar) tiempoGirar=tiempoMinimoGirar;
            rotacion = (Random.value*720.0)-360.0;
            girando=true;
        } else tiempoGirar-=Time.deltaTime;
    } else {
        girado=velocidadGiro * Time.deltaTime;
        giradoTotal+=girado;
        if (rotacion>=0.0) {
            transform.Rotate(0, girado, 0);
            if (rotacion<=giradoTotal) {
                girando=false;
                giradoTotal=0.0;
            }
        } else {
            transform.Rotate(0, girado*-1, 0);
            if (rotacion>=giradoTotal*-1) {
                girando=false;
                giradoTotal=0.0;
            }
        }
    }
   
    if (parado) {
        if (tiempoCaminar<=0.0) {
            parado = false;
            tiempoParar= Random.value*tiempoMaximoParado;
            if (tiempoParar < tiempoMinimoParado) tiempoParar=tiempoMinimoParado;
            GetComponent(ConstantForce).constantForce.relativeForce = Vector3.forward * maximaVelocidad;
        }
        tiempoCaminar-=Time.deltaTime;
    } else {
        if (tiempoParar<=0.0) {
            parado = true;
            tiempoCaminar= Random.value*tiempoMaximoCaminando;
            if (tiempoCaminar< tiempoMinimoCaminando) tiempoCaminar=tiempoMinimoCaminando;
            GetComponent(ConstantForce).constantForce.relativeForce = Vector3.zero;
        }
        tiempoParar-=Time.deltaTime;
    }
}

No hay comentarios:

Publicar un comentario