void DischargeObserve() { var controllerVelocityObserver = pose .ObserveEveryValueChanged(p => p.GetVelocity(hand).sqrMagnitude); controllerVelocityObserver .Where(x => x > 35f) .Subscribe(_ => isHandMoving = true); controllerVelocityObserver .Where(_ => isHandMoving) .Where(x => x < 1.0f) .Subscribe(_ => stopJudgeCounter.Value++); stopJudgeCounter.Where(x => x == 10) .Subscribe(_ => { _onDischarge.OnNext(Unit.Default); stopJudgeCounter.Value = 0; isHandMoving = false; }); }