Example #1
0
        // Update is called once per frame
        public virtual bool Update()
        {
            switch (estado)
            {
            case EstadoDoNPC.parado:
                contadorDeTempo += Time.deltaTime;
                if (contadorDeTempo > tempoParado && pontosAlvo.Length > 0)
                {
                    alvo            = pontosAlvo[Random.Range(0, pontosAlvo.Length)].position;
                    contadorDeTempo = 0;
                    estado          = EstadoDoNPC.caminhando;
                }
                break;

            case EstadoDoNPC.caminhando:
                siga.Update(alvo);

                if (Vector3.Distance(alvo, meuTransform.position) < 2)
                {
                    siga.PareAgora();
                    estado      = EstadoDoNPC.parado;
                    tempoParado = Random.Range(TEMPO_MIN_PARADO, TEMPO_MAX_PARADO);
                }
                break;

            case EstadoDoNPC.conversando:
                //AplicadorDeCamera.cam.FocarPonto(5);
                if (GameController.g.HudM.DisparaT.UpdateDeTextos(conversa, fotoDoNPC))
                {
                    FinalizaConversa();
                }
                break;

            case EstadoDoNPC.finalizadoComBotao:
                estado = EstadoDoNPC.parado;
                return(true);
            }

            return(false);
        }
Example #2
0
 public void Update()
 {
     if (criatureDoJogador != null)
     {
         if (meuCriature.name == "CriatureAtivo")
         {
             siga.Update(criatureDoJogador.TDono.position);
         }
         else
         {
             AplicaIaDeAtaque();
             // GerenciadorDeEstado();
             //GerenciadorDeAcoes();
         }
     }
     else
     {
         if (!procurando)
         {
             ProcuraCriatureDoJogador();
         }
     }
 }