コード例 #1
0
 public void FazAcoes(AgenteIA Agent)
 {
     for (int i = 0; i < acoess.Length; i++)
     {
         acoess[i].Agir(Agent);
     }
 }
コード例 #2
0
    public override void Agir(AgenteIA agent)               // SOBREPONDO A AÇAO para acao ABAIXO
    {
        agent.agente.SetDestination(agent.player.position); // FAZ O AGENTE PERSEGUIR O PLAYER

        if (agent.QtMunicao > 0 && agent.HP > 25)           // VERIFICA O TANTO DE MUNIÇAO TEM
        {
            agent.Atirar();                                 // CHAMA O METODO ATIRAR
        }
    }
コード例 #3
0
 public override bool ChecaCondicao(AgenteIA agent)
 {
     if (agent.distancia <= 40 && agent.QtMunicao > 0)
     {
         return(true);                                              // VERIFICA SE A DISTANCIA DO PLAYER COM O AGENTE È MAIOR QUE 40
     }
     else
     {
         return(false);
     }
 }
コード例 #4
0
 public override bool ChecaCondicao(AgenteIA agent)
 {
     if (agent.HP <= 25)
     {
         return(true);                // VERIFICA SE O HP DO AGENTE é IGUAL 25 E COM ISSO RETORNA TRUE
     }
     else
     {
         return(false);
     }
 }
コード例 #5
0
 public override bool ChecaCondicao(AgenteIA agent)
 {
     if (agent.QtMunicao <= 0)
     {
         return(true);                      // VERIFICA SE a MUNICAO DO AGENTE é IGUAL ou menor 0 E COM ISSO RETORNA TRUE
     }
     else
     {
         return(false);
     }
 }
コード例 #6
0
    public void VerificarTransicoes(AgenteIA Agent)
    {
        for (int i = 0; i < transicoes.Length; i++)
        {
            bool transita = transicoes[i].ChecaCondicao(Agent);

            if (transita)
            {
                Agent.estadoAtual = transicoes[i].estadoCasoTrue;
            }
            else
            {
                Agent.estadoAtual = transicoes[i].estadoCasoFalse;
            }
        }
    }
コード例 #7
0
    public override void Agir(AgenteIA agent)
    {
        //SCRIPT PRA VERIFICAR SE O AGENTEIA CONSEGUIU LOCALIZAR UM PLAYER
        Debug.DrawRay(agent.eye.position, agent.eye.forward * alcance, Color.yellow);
        RaycastHit hit;

        if (Physics.Raycast(agent.eye.position, agent.eye.forward, out hit, alcance))
        {
            if (hit.collider.CompareTag("Player"))
            {
                agent.taperto = true;
            }
            else
            {
                agent.taperto = false;
            }
        }
    }
コード例 #8
0
 public override void Agir(AgenteIA agent)
 {
     //SCRIPT QUE FAZ COM QUE O AGENTE VA DE UM PONTO A ATE O PONTOS RESTANTES.
     if (agent.agente.remainingDistance <= agent.agente.stoppingDistance && !agent.agente.pathPending)
     {
         if (agent.flagWaypoint + 2 > agent.waypoints.Length)
         {
             agent.flagWaypoint = 0;
         }
         else
         {
             agent.flagWaypoint++;
         }
         //agent.estadoAtual = agent.Estado.gira;
     }
     if (agent.QtMunicao > 0 && agent.distancia > 40 && agent.HP > 25)
     {
         agent.agente.SetDestination(agent.waypoints[agent.flagWaypoint].position);
     }
 }
コード例 #9
0
 public override void Agir(AgenteIA agent)
 {
     agent.agente.SetDestination(agent.localBase.position); // FAZ COM QUE O AGENTE VA ATE A BASE
 }
コード例 #10
0
 public abstract void Agir(AgenteIA agent);
コード例 #11
0
 public override void Agir(AgenteIA agent)                // SOBREPONDO A AÇAO para acao ABAIXO
 {
     agent.agente.SetDestination(agent.Municao.position); // FAZ O AGENTE PERSEGUIR O PLAYER
 }
コード例 #12
0
 public void AtualizarEstado(AgenteIA Agent)
 {
     FazAcoes(Agent);
     VerificarTransicoes(Agent);
 }
コード例 #13
0
    public EstaodoFSM estadoCasoFalse; // caso o retorno for false

    public abstract bool ChecaCondicao(AgenteIA agent);