public void ButtonDown(GamepadKey key)
        {
            if (GamepadProvider.IsSideKey(key))
            {
                return;
            }

            _buttonDownCount++;
        }
        public void ButtonDown(GamepadKey key)
        {
            _inputJitter.AddButtonInput();
            if (GamepadProvider.IsSideKey(key))
            {
                return;
            }

            _buttonDownCount++;
        }
        public void ButtonUp(GamepadKey key)
        {
            if (GamepadProvider.IsSideKey(key))
            {
                return;
            }
            _buttonDownCount--;

            //通常起きないハズだが一応
            if (_buttonDownCount < 0)
            {
                _buttonDownCount = 0;
            }
        }
        public GamepadHandIKGenerator(
            MonoBehaviour coroutineResponder,
            IVRMLoadable vrmLoadable,
            WaitingBodyMotion waitingBodyMotion,
            GamepadProvider gamepadProvider,
            GamepadHandIkGeneratorSetting setting) : base(coroutineResponder)
        {
            _gamePad     = gamepadProvider;
            _setting     = setting;
            _waitingBody = waitingBodyMotion;

            //モデルロード時、身長を参照することで「コントローラの移動オフセットはこんくらいだよね」を初期化
            vrmLoadable.VrmLoaded += info =>
            {
                var   h      = info.animator.GetBoneTransform(HumanBodyBones.Head);
                var   f      = info.animator.GetBoneTransform(HumanBodyBones.LeftFoot);
                float height = h.position.y - f.position.y;
                _posOffsetScale = Mathf.Clamp(height / ReferenceHeight, 0.1f, 5f);
            };
        }
 public void Initialize(GamepadProvider provider)
 {
     _gamePad = provider;
 }