public void SetUp()
        {
            carrierControllerStateMock_   = Substitute.For <IControllerState>();
            modulatorControllerStateMock_ = Substitute.For <IControllerState>();
            idleControllerStateMock_      = Substitute.For <IControllerState>();

            stateAssignerMock_       = Substitute.For <IStateAssigner>();
            controllerBehaviourMock_ = Substitute.For <IControllerBehaviour>();
        }
        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();
        }