public void Combatendo() { defensor.SetDestination(player.transform.position); ///coloca o inimigo para ir em direção do player Vector3 mag1 = transform.position - player.transform.position; ///calcula quanto falta pra chegar no player Vector3 mag2 = pontoInicial - transform.position; ///calcula quanto o inimigo já andou if (mag1.magnitude <= maxDistanciaCombate) //se o inimigo está a pelo menos 1 andada de chegar no player, ele para { protocolo = ProtocoloDeDefesa.Esperar; //para o inimigo defensor.isStopped = true; print("ho"); StartCoroutine(WaitAttack()); } if (mag2.magnitude >= maxDistanciaCombate) //se o inimigo passou do limite de andar, ele para { protocolo = ProtocoloDeDefesa.Esperar; //para o inimigo defensor.isStopped = true; print("hey"); StartCoroutine(WaitAttack()); } }
public IEnumerator WaitAttack() { transform.LookAt(player.transform.position); yield return(new WaitForSeconds(timeToAttack)); protocolo = ProtocoloDeDefesa.Atacar; StopAllCoroutines(); }
public void Atacando() { enemyCam.SetActive(true); battleCam.SetActive(false); anim.SetTrigger("AgressivaEnemy"); protocolo = ProtocoloDeDefesa.Esperar; }
// Use this for initialization void Start() { pontoDePatrulha = pontos.GetComponentsInChildren <Transform>(); numeroDoPonto = Random.Range(1, pontoDePatrulha.Length); protocolo = ProtocoloDeDefesa.Patrulhar; defensor.SetDestination(pontoDePatrulha[numeroDoPonto].position); alvo = null; anim = GetComponent <Animator>(); }
public void Patrulhando() { Vector3 mag = transform.position - pontoDePatrulha[numeroDoPonto].position; if (mag.magnitude <= minDistancia) { protocolo = ProtocoloDeDefesa.Esperar; defensor.isStopped = true; StartCoroutine(TempoDeEspera()); } }
public void OnTriggerEnter(Collider col) { if (col.gameObject.CompareTag("Player") && (taAgressivo)) { alvo = col.transform; defensor.isStopped = false; StopAllCoroutines(); protocolo = ProtocoloDeDefesa.Perseguir; defensor.SetDestination(alvo.position); return; } }
public IEnumerator TempoDeEspera() { yield return(new WaitForSeconds(tempoParado)); numeroDoPonto++; if (numeroDoPonto >= pontoDePatrulha.Length) { numeroDoPonto = 0; } defensor.SetDestination(pontoDePatrulha[numeroDoPonto].position); defensor.isStopped = false; protocolo = ProtocoloDeDefesa.Patrulhar; }
public void Perder() { protocolo = ProtocoloDeDefesa.Perder; StopAllCoroutines(); defensor.isStopped = true; }
public void IniciarTurno() //inimigo começa a andar { protocolo = ProtocoloDeDefesa.Combater; defensor.isStopped = false; pontoInicial = transform.position; }
public void IniciarCombate() //para o inimigo para o turno do player { protocolo = ProtocoloDeDefesa.Esperar; defensor.isStopped = true; }
public void IniciarTurno() //inimigo começa a andar { protocolo = ProtocoloDeDefesa.Combater; defensor.isStopped = false; }
public IEnumerator WaitAttack() { yield return(new WaitForSeconds(5)); protocolo = ProtocoloDeDefesa.Atacar; }