public Controller(IStateAssigner stateAssigner, IControllerBehaviour controllerBehaviour) { stateAssigner_ = stateAssigner; controllerBehaviour_ = controllerBehaviour; controllerBehaviour_.TransformChanged += OnTransformChanged; controllerBehaviour_.TriggerPressed += OnTriggerPressed; controllerBehaviour_.TriggerReleased += OnTriggerReleased; controllerBehaviour_.ThumbstickPositionChanged += OnThumbStickPositionChanged; controllerBehaviour_.Updated += OnUpdated; currentState_ = stateAssigner_.Unassign(this); currentState_.OnStateSelected(); }
private void ChangeStateTo(IControllerState nextState) { currentState_.OnStateDeselected(); currentState_.FreqChanged -= OnFreqChanged; currentState_.AmpChanged -= OnAmpChanged; currentState_.WaveformUpdated -= OnWaveformUpdated; currentState_.ResonanceChanged -= OnResonanceChanged; currentState_ = nextState; controllerBehaviour_.IndicatorBehaviour.FuncText = currentState_.Identifier; controllerBehaviour_.WaveVisibility = currentState_.Identifier != "idle"; currentState_.OnStateSelected(); currentState_.OnDistanceChanged(distance_); currentState_.FreqChanged += OnFreqChanged; currentState_.AmpChanged += OnAmpChanged; currentState_.WaveformUpdated += OnWaveformUpdated; currentState_.ResonanceChanged += OnResonanceChanged; }