//스테이트 변경 public void ChangeState(M_FSMState m_ChangState) { m_FsmState.Exit(); //이전 State 이탈 m_FsmState = m_ChangState; //현재 State 변경 monState = m_ChangState.TopState; //변경된 State의 enum Index 설정 m_FsmState.Enter(); //변경된 State 진입 }
//Initialize 초기화 void Initialize() { //몬스터 컴포넌트 가져오기 tr = GetComponent <Transform>(); nvAgent = GetComponent <NavMeshAgent>(); animator = GetComponentInChildren <Animator>(); //시야 마스크 설정 inSightLayerMask = (1 << LayerMask.NameToLayer(Layers.MonsterAttkCollider)) | (1 << LayerMask.NameToLayer(Layers.MonsterHitCollider)) | (1 << LayerMask.NameToLayer(Layers.AlleyTrigger)); inSightLayerMask = ~inSightLayerMask; //플레이어 정보 playerTr = GameObject.FindWithTag(Tags.Player).GetComponent <Transform>(); //idle상태로 시작 monState = M_TopState.Idle; m_FsmState = M_Idle.instance; }