IEnumerator Aim(Animator animator) { RangerEnemyBehaviour rangerEnemy = animator.GetComponent <RangerEnemyBehaviour>(); yield return(new WaitForSeconds(3)); bool aiming = true; while (aiming) { Ray ray = new Ray(rangerEnemy.arco.transform.position, Vector3.forward); Debug.DrawRay(rangerEnemy.arco.transform.position, Vector3.forward); if (Physics.Raycast(ray, out hit)) { Debug.Log(hit.collider.gameObject.name); if (hit.collider.CompareTag("Player")) { aiming = false; animator.SetTrigger("Shoot"); } } yield return(new WaitForEndOfFrame()); } }
override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { enemyBehaviour = animator.gameObject.GetComponent <RangerEnemyBehaviour>(); if (!enemyBehaviour.arco.hasArrow) { enemyBehaviour.Recharge(); } enemyBehaviour.Charge(); }
override public void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { enemyBehaviour = null; }