private void OnTriggerEnter(Collider other) { if (other.gameObject.CompareTag("Player")) { foraDeAlcance = false; target = GameObject.FindGameObjectWithTag("Player").GetComponent <Transform>(); estadoatual = EstadoDePatrulha.PERSEGUINDO; chaseTime = startChaseTime; //Sempre que o jogador entrar no "Campo de visão" reseta o chase time para o inicial } }
// Start is called before the first frame update void Start() { if (GameInformation.LastEnemy == this.gameObject.name) { Destroy(this.gameObject); } permanentY = transform.position.y; estadoatual = EstadoDePatrulha.PATRULHANDO; target = GameObject.FindGameObjectWithTag("Player").GetComponent <Transform>(); waitTime = startWaitTime; randomPonto = Random.Range(0, pontosDePatrulha.Length); }
private void PerseguirJogador() { speed = chaseSpeed; anim.SetBool("walking", true); transform.position = Vector3.MoveTowards(transform.position, target.position, speed * Time.deltaTime); transform.position = new Vector3(transform.position.x, permanentY, transform.position.z); transform.LookAt(target); if (foraDeAlcance) //Se o jogador fica fora do trigger que detecta sua presença por um certo tempo, o inimigo volta a patrulhar { if (chaseTime <= 0) { estadoatual = EstadoDePatrulha.PATRULHANDO; chaseTime = startChaseTime; } else { chaseTime -= Time.deltaTime; } } }