public virtual void Awake() { baseAgentController = transform.GetComponent <BaseAgentController>(); GameObject gameManager = GameObject.FindGameObjectWithTag("GameController"); prafabHolder = gameManager.GetComponent <PrafabHolder>(); aiUtils = gameManager.GetComponentInChildren <AIUtils>(); animationController = transform.GetComponentInChildren <CustomAnimationController>(); eventHelper = transform.GetComponentInChildren <SimpleEventHelper>(); shootPoint = aiUtils.GetShootPoint(transform); player = GameObject.FindGameObjectWithTag("Player"); currentRole = GetComponent <Enemy>(); currentRole.statusManager.notifyStatusChange += OnStatusChange; eventHelper.notifyGetHit += OnGetHit; currentState = AIState.IDLE; stateStartTime = Time.time; progress = AIProgress.END; resetPatrolPoint(); }