public void FazAcoes(AgenteIA Agent) { for (int i = 0; i < acoess.Length; i++) { acoess[i].Agir(Agent); } }
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 } }
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); } }
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); } }
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); } }
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; } } }
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; } } }
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); } }
public override void Agir(AgenteIA agent) { agent.agente.SetDestination(agent.localBase.position); // FAZ COM QUE O AGENTE VA ATE A BASE }
public abstract void Agir(AgenteIA agent);
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 }
public void AtualizarEstado(AgenteIA Agent) { FazAcoes(Agent); VerificarTransicoes(Agent); }
public EstaodoFSM estadoCasoFalse; // caso o retorno for false public abstract bool ChecaCondicao(AgenteIA agent);