// UIのPresentetor層からコールされるモデルのロジック public void SetCurrentAdjuster(ControllerButtonType type) { switch (type) { case ControllerButtonType.Move: CurrentAdjuster = _positionAdjuster; break; case ControllerButtonType.Rotate: CurrentAdjuster = _rotateAdjuster; break; case ControllerButtonType.Scale: CurrentAdjuster = _scaleAdjuster; break; case ControllerButtonType.Done: CurrentAdjuster = null; break; default: throw new ArgumentOutOfRangeException(nameof(type), type, null); } _currentState.Value = type; }
private void Start() { this.UpdateAsObservable() .Where(_ => _manipulationProvider.IsManipulating.Value) .Subscribe(_ => { var velocity = _manipulationProvider.SmoothVelocity; _currentAdjuster?.AdjustTransform(_target.Value, velocity); }); AdjusterManager.Instance.CurrentState .Subscribe(_ => _currentAdjuster = AdjusterManager.Instance.CurrentAdjuster) .AddTo(gameObject); AdjusterManager.Instance.CurrentState .Where(state => state == ControllerButtonType.Done) .Subscribe(_ => _bbEdges.transform.localScale = Vector3.zero) .AddTo(gameObject); }
private void Start() { CurrentAdjuster = _positionAdjuster; }