internal protected void ChangeState(E_Hand_State state)
 {
     mCurrentState.End();
     State = state;
     if (mDicState.ContainsKey(state))
     {
         mDicState[state].Start();
         mCurrentState = mDicState[state];
     }
 }
 internal protected Hi5_Glove_State_Base GetBaseState(E_Hand_State stateEnum)
 {
     if (mDicState.ContainsKey(stateEnum))
     {
         return(mDicState[stateEnum]);
     }
     else
     {
         return(null);
     }
 }
        public void  GetGloveState <T>(E_Hand_State hand_type, out T backValue) where T : Hi5_Glove_State_Base
        {
            backValue = null;

            Hi5_Glove_State_Base item = GetBaseState(hand_type);

            if (item != null)
            {
                T scrip = item as T;
                backValue = scrip;
            }
        }
 protected Hi5_Glove_Interaction_State()
 {
     State = E_Hand_State.ERelease;
     mDicState.Clear();
 }