예제 #1
0
    // Update is called once per frame
    void Update()
    {
        // currentH = GetComponent<EnemyHealth>().currentHealth;

        // Ve al jugador?
        RaycastHit hit;

        if (controladorVision.PuedeVerAlJugador(out hit))
        {
            controladorNavMesh.perseguirObjectivo = hit.transform;
            maquinaDeEstados.ActivarEstado(maquinaDeEstados.EstadoPersecucion);
            return;
        }


        // Debug.Log(currentH);
        // Debug.Log(startingH);
        // if(startingH < currentH){
        //     currentH++;
        // }


        if (controladorNavMesh.HemosLlegado())
        {
            siguienteWayPoint = (siguienteWayPoint + 1) % WayPoints.Length;
            ActualizarWayPointDestino();
        }
    }
예제 #2
0
    private void Update()
    {
        controladorNavMesh.ActualizarPuntoDestinoNavMesh();
        if (!controladorVision.PuedeVerAlJugador(out RaycastHit hit, true))
        {
            maquinaDeEstados.ActivarEstado(maquinaDeEstados.EstadoAlerta);
            return;
        }

        if (enRango.Enrango)
        {
            maquinaDeEstados.ActivarEstado(maquinaDeEstados.EstadoAtaque);
        }
    }
예제 #3
0
    // Update is called once per frame
    void Update()
    {
        if (controladorVision.PuedeVerAlJugador(out RaycastHit hit))
        {
            controladornavMesh.PerseguirObjetivo = hit.transform;
            maquinaDeEstados.ActivarEstado(maquinaDeEstados.EstadoPersecucion);
            return;
        }

        if (controladornavMesh.Llegamos())
        {
            siguienteWayPoint = (siguienteWayPoint + 1) % WayPoints.Length;
            ActualizarVoidPointDestino();
        }
    }
예제 #4
0
        public void TakeDamage(int amount, Vector3 hitPoint)
        {
            maquinaDeEstados.ActivarEstado(maquinaDeEstados.EstadoEnojado);
            // If the enemy is dead...
            if (isDead)
            {
                // ... no need to take damage so exit the function.
                return;
            }


            // Play the hurt sound effect.
            enemyAudio.Play();

            // Reduce the current health by the amount of damage sustained.
            currentHealth -= amount;

            // Set the position of the particle system to where the hit was sustained.
            hitParticles.transform.position = hitPoint;

            // And play the particles.
            hitParticles.Play();

            // If the current health is less than or equal to zero...
            if (currentHealth <= 0)
            {
                // ... the enemy is dead.
                Death();
            }
        }
예제 #5
0
 private void Update()
 {
     if (FueraDeRango)
     {
         maquinaDeEstados.ActivarEstado(maquinaDeEstados.EstadoAlerta);
     }
 }
예제 #6
0
    // Update is called once per frame
    void Update()
    {
        RaycastHit hit;

        if (cVision.PlayerDetected(out hit))
        {
            cNavMesh.followObj = hit.transform;
            mEstados.ActivarEstado(mEstados.EstadoPersecusion);
            return;
        }

        if (cNavMesh.Meta())
        {
            nextWP = (nextWP + 1) % WayPoints.Length;
            ActualizarWPD();
        }
    }
    void Update()
    {
        RaycastHit hit;

        if (!controladorVision.PuedeVerAlJugador(out hit, true))
        {
            maquinaDeEstados.ActivarEstado(maquinaDeEstados.EstadoAlerta);
            return;
        }
        else
        {
            maquinaDeEstados.ActivarEstado(maquinaDeEstados.EstadoAtaque);
            // maquinaDeEstados.EstadoAtaque.enabled = true;
        }

        controladorNavMesh.ActualizarPuntoDestinoNavMeshAgent();
    }
예제 #8
0
    // Update is called once per frame
    void Update()
    {
        RaycastHit hit;

        if (controladorVision.PuedeVerAlJugador(out hit))
        {
            controladorNavMesh.perseguirObjetivo = hit.transform;
            maquinaDeEstados.ActivarEstado(maquinaDeEstados.EstadoPersecucion);
            return;
        }
        transform.Rotate(0f, velocidadGiroBusqueda * Time.deltaTime, 0f);
        tiempoBuscando += Time.deltaTime;
        if (tiempoBuscando >= duracionBusqueda)
        {
            maquinaDeEstados.ActivarEstado(maquinaDeEstados.EstadoPatrulla);
            return;
        }
    }
예제 #9
0
    // Update is called once per frame
    void Update()
    {
        // Ve al jugador?
        RaycastHit hit;

        if (controladorVision.PuedeVerAlJugador(out hit))
        {
            controladorNavMesh.perseguirObjectivo = hit.transform;
            maquinaDeEstados.ActivarEstado(maquinaDeEstados.EstadoPersecucion);
            return;
        }

        if (controladorNavMesh.HemosLlegado())
        {
            siguienteWayPoint = (siguienteWayPoint + 1) % WayPoints.Length;
            ActualizarWayPointDestino();
        }
    }
예제 #10
0
    // Update is called once per frame
    void Update()
    {
        RaycastHit hit;

        if (cVision.PlayerDetected(out hit))
        {
            cNavMesh.followObj = hit.transform;
            mEstados.ActivarEstado(mEstados.EstadoPersecusion);
            return;
        }

        transform.Rotate(0f, speedSearch * Time.deltaTime, 0f);
        timeSearching += Time.deltaTime;
        if (timeSearching >= timeSearch)
        {
            mEstados.ActivarEstado(mEstados.EstadoPatrulla);
            return;
        }
    }
예제 #11
0
 // Update is called once per frame
 void Update()
 {
     controladorNavMesh.ActualizarPuntoDestinoNavMeshAgent(controladorNavMesh.perseguirObjetivo.position);
     tiempoEnojado += Time.deltaTime;
     if (tiempoEnojado >= duracionEnojo)
     {
         maquinaDeEstados.ActivarEstado(maquinaDeEstados.EstadoAlerta);
         return;
     }
 }
예제 #12
0
    // Update is called once per frame
    void Update()
    {
        //Aqui el ennemigo va a comprobar si puede ver al enemigo
        RaycastHit hit;

        if (controladorVision.PuedeVerAlJugador(out hit))
        {
            controladorNavMesh.perseguirObjectivo = hit.transform;
            maquinaDeEstados.ActivarEstado(maquinaDeEstados.EstadoPersecucion); // aqui se activa el estado persecucion
            return;
        }
        // aqui se comprueba si el jugador a llegado a su destino
        if (controladorNavMesh.HemosLlegado())
        {
            anim.Play("Caminar");
            siguienteWayPoint = (siguienteWayPoint + 1) % WayPoints.Length;
            ActualizarWayPointDestino();
            anim.Play("Caminar");
        }
    }
예제 #13
0
    // Update is called once per frame
    void Update()
    {
        RaycastHit hit;

        if (!controladorVision.PuedeVerAlJugador(out hit, true))
        {
            maquinaDeEstados.ActivarEstado(maquinaDeEstados.EstadoAlerta);
            return;
        }
        controladorNavMesh.ActualizarPuntoDestinoNavMeshAgent(controladorNavMesh.perseguirObjetivo.position);
    }
예제 #14
0
    // Update is called once per frame
    void Update()
    {
        RaycastHit hit;

        if (!cVision.PlayerDetected(out hit, true))
        {
            mEstados.ActivarEstado(mEstados.EstadoAlerta);
            return;
        }
        cNavMesh.ActualizarPDNavMeshAgent();
    }
    void Update()
    {
        RaycastHit hit;

        if (!controladorVision.PuedeVerAlJugador(out hit, true))
        {
            maquinaDeEstados.ActivarEstado(maquinaDeEstados.EstadoAlerta);

            return;
        }
        anim.Play("Correr");
        controladorNavMesh.ActualizarPuntoDestinoNavMeshAgent();
    }
예제 #16
0
    void Update()
    {
        RaycastHit hit;

        if (!controladorVision.PuedeVerAlJugador(out hit, true))
        {
            maquinaDeEstados.ActivarEstado(maquinaDeEstados.EstadoAlerta);
            return;
        }

        navMeshAgent.speed        = 7f;
        navMeshAgent.angularSpeed = 250f;
        navMeshAgent.acceleration = 15f;
        controladorNavMesh.ActualizarPuntoDestinoNavMeshAgent(WayPointMiedo.position);
    }