コード例 #1
0
ファイル: MovDep.cs プロジェクト: MayraFloresR/Juego-final
 // Start is called before the first frame update
 void Start()
 {
     EstadoActual = DepIA.Patrulla;
     //Se convierte en el elemento inicial el indice 1
     target = puntos[1];
     //.position lee la posición
     sierra.position = target.position;
     velocidad       = velocidad * Time.deltaTime;
     indiceTarget    = 0;
 }
コード例 #2
0
 // Start is called before the first frame update
 void Start()
 //Al principio el jugador estará solo patrullando por una ruta delimitada por objetos en blanco
 {
     EstadoActual = DepIA.Patrulla;
     //Se convierte en el elemento inicial el indice 1
     target = puntos[1];
     //.position lee la posición
     sierra.position = target.position;
     velocidad       = velocidad * Time.deltaTime;
     indiceTarget    = 0;
 }
コード例 #3
0
    // Update is called once per frame
    void Update()
    {
        Vector3 dir = target.position - sierra.position;
        //distance va a medir la distancia entre el objeto a mover y el objetivo
        float distance = Vector3.Distance(sierra.position, target.position);

        float distancePlayer = Vector3.Distance(sierra.position, player.position);

        //Se va a trasladar tomando en cuenta la normalizacion de la velocidad midiendo su espacio en el mundo
        sierra.Translate(dir.normalized * velocidad, Space.World);

        //si la distancia es menor o igual a 0.5 se le suma uno a indice, que es el que indica hacia que punto se va a mover

        if (EstadoActual == DepIA.Patrulla)
        {
            target = puntos[indiceTarget];

            if (distance <= 0.5f)
            {
                //.Length es para que el sistema lea la extensión total del array lee cada nunero o valor dentro del array desde 0 hasta 4
                //El -1 se obliga a que se lea solo hasta el último punto, no se sobrecarga el array
                if (indiceTarget >= puntos.Length - 1)
                {
                    indiceTarget = 0;
                    target       = puntos[indiceTarget];
                }

                indiceTarget++;
                target = puntos[indiceTarget];
            }
        }

        //Se programa que, si la distancia entre el jugador y el enemigo es igual o mayor a 15, comenzará la persecución

        if (distancePlayer <= 15)
        {
            EstadoActual = DepIA.Perseguir;
        }
        //Se programa que, si la distancia entre el jugador y el enemigo es igual o menor a 10, el depredadro volverá a patrullar
        else if (distancePlayer > 10)
        {
            EstadoActual = DepIA.Patrulla;
        }

        if (EstadoActual == DepIA.Perseguir)
        {
            target = player;
        }
    }