protected override eRunningState Tick(BevData workData)
        {
            ChaBevData thisData = workData as ChaBevData;

            Vector3 translationRequest;

            if (thisData.Request_Translation.TryHandle(out translationRequest))
            {
                translationRequest = thisData.Character.transform.rotation * translationRequest
                                     * (thisData.isWalking ? thisData.Character.WalkSpeed : thisData.Character.RunSpeed)
                                     * Time.deltaTime;

                //publih this event to character's components
                thisData.NotifyOtherComponents(new E_Cha_TranslateRequest_XZ(translationRequest));

                m_enRunningState = eRunningState.Suceed;
                return(m_enRunningState);
            }

            else
            {
                m_enRunningState = eRunningState.Failed;
                return(m_enRunningState);
            }
        }
        protected override eRunningState Tick(BevData workData)
        {
            ChaBevData thisData = workData as ChaBevData;

            if (thisData.Request_Yaw.TryHandle(out float reqYaw))
            {
                //publih this event to character's components
                thisData.NotifyOtherComponents(new E_Cha_YawRequest(reqYaw));

                m_enRunningState = eRunningState.Suceed;
                return(m_enRunningState);
            }
            else
            {
                m_enRunningState = eRunningState.Failed;
                return(m_enRunningState);
            }
        }
        protected override eRunningState Tick(BevData workData)
        {
            ChaBevData thisData = workData as ChaBevData;

            //Check Jump Request
            if (thisData.Character.MovingType == enMovingType.Walking)
            {
                if (thisData.Request_Jump.TryHandle(out bool isJump) && !thisData.isInAir)
                {
                    thisData.isInAir = true;

                    thisData.NotifyOtherComponents(new E_Cha_JumpUp(thisData.Character.JumpForce));
                }
                m_enRunningState = eRunningState.Suceed;
                return(eRunningState.Suceed);
            }
            else
            {
                m_enRunningState = eRunningState.Failed;
                return(eRunningState.Failed);
            }
        }
        protected override eRunningState Tick(BevData workData)
        {
            ChaBevData thisData = workData as ChaBevData;

            //Check Jump Request
            if (thisData.Character.MovingType == enMovingType.suspending)
            {
                if (thisData.Request_UpDown.TryHandle(out float _value))
                {
                    thisData.isInAir = true;

                    thisData.NotifyOtherComponents(new E_Cha_Suspend(_value));
                }
                m_enRunningState = eRunningState.Suceed;
                return(eRunningState.Suceed);
            }
            else
            {
                m_enRunningState = eRunningState.Failed;
                return(eRunningState.Failed);
            }
        }
 private void Awake()
 {
     m_Root         = ChaBevFactory.Instance.ChaAct_Base();
     m_Communicator = GetComponent <Communicator>();
     m_BevData      = new ChaBevData(GetComponent <Character>(), m_Communicator);
 }