Ejemplo n.º 1
0
 public override void UpdateState(TorretaEstatica torreta)
 {
     if (torreta.playerDetected == true)
     {
         torreta.StopAllCoroutines();
         torreta.TransitionToState(torreta.attackState);
     }
 }
Ejemplo n.º 2
0
    IEnumerator Wait(TorretaEstatica agent)
    {
        Debug.Log("Inicio conteo");
        yield return(new WaitForSeconds(agent.timeIdle));

        ///Se ejecuta despues de X segundos
        Debug.Log("Cambio a estado de rotar!");
        agent.TransitionToState(agent.rotateState);
    }
Ejemplo n.º 3
0
 public override void UpdateState(TorretaEstatica torreta)
 {
     if (torreta.playerDetected == true)
     {
         torreta.TransitionToState(torreta.attackState);
     }
     else
     {
         torreta.transform.rotation = Quaternion.Slerp(torreta.transform.rotation,
                                                       Quaternion.Euler(torreta.angles[torreta.angleIndex]), Time.deltaTime * torreta.speedRotation);
         if (torreta.transform.eulerAngles.y >= (torreta.angles[torreta.angleIndex].y - 1))
         {
             Debug.Log("Llegue al angulo destino");
             torreta.angleIndex = (torreta.angleIndex + 1) % torreta.angles.Length;
             torreta.TransitionToState(torreta.idleState);
         }
     }
 }
Ejemplo n.º 4
0
    public override void UpdateState(TorretaEstatica torreta)
    {
        if (torreta.playerDetected == true)
        {
            var lookRotation = Quaternion.LookRotation(torreta.playerTarget.transform.position - torreta.transform.position);
            torreta.transform.rotation = Quaternion.Slerp(torreta.transform.rotation, lookRotation, torreta.speedRotation * Time.deltaTime);

            //Disparar
            if (nextFire < Time.time)
            {
                torreta.FireBullet();
                nextFire = Time.time + rateFire;
            }
        }
        else
        {
            torreta.TransitionToState(torreta.idleState);
        }
    }
Ejemplo n.º 5
0
 public abstract void UpdateState(TorretaEstatica torreta);
Ejemplo n.º 6
0
 public abstract void EnterState(TorretaEstatica torreta);
Ejemplo n.º 7
0
 public override void EnterState(TorretaEstatica torreta)
 {
     Debug.Log("Entro estado atacar!");
     torreta.currentState = AgentState.Attack;
 }
Ejemplo n.º 8
0
 public override void EnterState(TorretaEstatica torreta)
 {
     Debug.Log("Inicio Estado de espera!");
     torreta.currentState = AgentState.Idle;
     torreta.Coroutine(Wait(torreta));
 }
Ejemplo n.º 9
0
 public override void EnterState(TorretaEstatica torreta)
 {
     Debug.Log("Entro a estado de rotación");
     torreta.currentState = AgentState.Rotation;
 }