Пример #1
0
 // Start is called before the first frame update
 void Start()
 {
     estadoActual     = EnemigoIA.Patrulla;
     target           = puntos[1];
     Enemigo.position = target.position;
     velocidad        = velocidad * Time.deltaTime;
     indiceTaregt     = 0;
 }
Пример #2
0
    // Update is called once per frame
    void Update()
    {
        Vector3 dir      = target.position - sierra.position;
        float   distance = Vector3.Distance(sierra.position, target.position);

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

        sierra.Translate(dir.normalized * velocidad, Space.World);
        if (estadoActual == EnemigoIA.Patrulla)
        {
            target = puntos[indiceTarget];
        }
        {
            if (distance <= 0.5f)
            {
                if (indiceTarget >= puntos.Length - 1)   //el propio sistema lee la extencion total del array con "length",si indiceTarget es >= a la extension del
                                                         //ArrayList sera -1
                {
                    indiceTarget = 0;                    //al llegar a 0 se parara la lista debido a la sorecarga de indice
                    target       = puntos[indiceTarget]; //aqui se pone el valor de "target" para tomarlo como recorido
                }

                indiceTarget++;                //el aumento de un numero +1
                target = puntos[indiceTarget]; //se basa en la lectura de indice segun sea lo que lleve
            }
        }
        if (distancePlayer <= 2)
        {
            estadoActual = EnemigoIA.Perseguir;
        }


        if (estadoActual == EnemigoIA.Perseguir)
        {
            target = player;
        }
        else if (distancePlayer > 5)
        {
            estadoActual = EnemigoIA.Patrulla;
        }
        if (estadoActual == EnemigoIA.Perseguir)
        {
            target = player;
        }
    }
Пример #3
0
    // Update is called once per frame
    void Update()
    {
        Vector3 dir = target.position - sierra.position;

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

        sierra.Translate(dir.normalized * velocidad, Space.World);

        if (estadoActual == EnemigoIA.Patrulla)
        {
            target = puntos[indiceTarget];
        }

        if (distance <= 0.5f)
        {
            if (indiceTarget >= puntos.Length - 1)
            {
                indiceTarget = 0;
                target       = puntos[indiceTarget];
            }

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

        // una vez que el player salga de su rango, este volverá a su zona a patrullar
        if (distancePlayer <= 0.5f)
        {
            estadoActual = EnemigoIA.Perseguir;
        }

        else if (distancePlayer > 1)
        {
            estadoActual = EnemigoIA.Patrulla;
        }

        if (estadoActual == EnemigoIA.Perseguir)
        {
            target = player;
        }
    }
Пример #4
0
    // Update is called once per frame
    void Update()
    {
        Vector2 dir = target.position - Enemigo.position;

        float distance       = Vector2.Distance(Enemigo.position, target.position);
        float distancePlayer = Vector2.Distance(Enemigo.position, player.position);

        Enemigo.Translate(dir.normalized * velocidad, Space.World);

        if (estadoActual == EnemigoIA.Patrulla)
        {
            target = puntos[indiceTaregt];

            if (distance <= 0.5f)
            {
                if (indiceTaregt >= puntos.Length - 1)
                {
                    indiceTaregt = 0;
                    target       = puntos[indiceTaregt];
                }

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

        if (distancePlayer <= 2)
        {
            estadoActual = EnemigoIA.Perseguir;
        }
        else if (distance > 5)
        {
            estadoActual = EnemigoIA.Patrulla;
        }

        if (estadoActual == EnemigoIA.Perseguir)
        {
            target = player;
        }
    }