示例#1
0
 private bool IsFuzzySearchActive()
 {
     return(!InputUtils.AnyKeyboardModifierPressed() &&
            !GameObjectUtils.InputFieldHasFocus(eventSystem));
 }
示例#2
0
    private void Start()
    {
        eventSystem.sendNavigationEvents = false;

        // Jump to start / end of song
        InputManager.GetInputAction(R.InputActions.songEditor_jumpToStartOfSong).PerformedAsObservable()
        .Where(_ => !AnyInputFieldHasFocus())
        .Subscribe(_ => songAudioPlayer.PositionInSongInMillis = 0);
        InputManager.GetInputAction(R.InputActions.songEditor_jumpToEndOfSong).PerformedAsObservable()
        .Where(_ => !AnyInputFieldHasFocus())
        .Subscribe(_ => songAudioPlayer.PositionInSongInMillis = songAudioPlayer.DurationOfSongInMillis - 1);

        // Play / pause
        InputManager.GetInputAction(R.InputActions.songEditor_togglePause).PerformedAsObservable()
        .Where(_ => !AnyInputFieldHasFocus())
        .Subscribe(_ =>
        {
            songEditorSceneControl.ToggleAudioPlayPause();
        });

        // Play only the selected notes
        InputManager.GetInputAction(R.InputActions.songEditor_playSelectedNotes).PerformedAsObservable()
        .Where(_ => !AnyInputFieldHasFocus())
        .Subscribe(_ => PlayAudioInRangeOfNotes(selectionControl.GetSelectedNotes()));

        // Stop playback or return to last scene
        InputManager.GetInputAction(R.InputActions.usplay_back).PerformedAsObservable()
        .Subscribe(OnBack);

        // Select all notes
        InputManager.GetInputAction(R.InputActions.songEditor_selectAll).PerformedAsObservable()
        .Where(_ => !AnyInputFieldHasFocus())
        .Subscribe(_ => selectionControl.SelectAll());

        // Select next / previous note
        InputManager.GetInputAction(R.InputActions.songEditor_selectNextNote).PerformedAsObservable()
        .Where(_ => !InputUtils.AnyKeyboardModifierPressed())
        .Subscribe(_ => selectionControl.SelectNextNote());
        InputManager.GetInputAction(R.InputActions.songEditor_selectPreviousNote).PerformedAsObservable()
        .Subscribe(_ => selectionControl.SelectPreviousNote());

        // Delete notes
        InputManager.GetInputAction(R.InputActions.songEditor_delete).PerformedAsObservable()
        .Where(_ => !AnyInputFieldHasFocus())
        .Subscribe(_ => deleteNotesAction.ExecuteAndNotify(selectionControl.GetSelectedNotes()));

        // Undo
        InputManager.GetInputAction(R.InputActions.songEditor_undo).PerformedAsObservable()
        .Where(_ => !AnyInputFieldHasFocus())
        .Subscribe(_ => historyManager.Undo());

        // Redo
        InputManager.GetInputAction(R.InputActions.songEditor_redo).PerformedAsObservable()
        .Where(_ => !AnyInputFieldHasFocus())
        .Subscribe(_ => historyManager.Redo());

        // Save
        InputManager.GetInputAction(R.InputActions.songEditor_save).PerformedAsObservable()
        .Where(_ => !AnyInputFieldHasFocus())
        .Subscribe(_ => songEditorSceneControl.SaveSong());

        // Start editing of lyrics
        InputManager.GetInputAction(R.InputActions.songEditor_editLyrics).PerformedAsObservable()
        .Where(_ => !AnyInputFieldHasFocus())
        .Subscribe(_ => songEditorSceneControl.StartEditingNoteText());

        // Change position in song
        InputManager.GetInputAction(R.InputActions.ui_navigate).PerformedAsObservable()
        .Where(_ => !AnyInputFieldHasFocus())
        .Subscribe(OnNavigate);

        // Make golden / freestyle / normal
        InputManager.GetInputAction(R.InputActions.songEditor_toggleNoteTypeGolden).PerformedAsObservable()
        .Where(_ => !AnyInputFieldHasFocus())
        .Where(_ => !InputUtils.AnyKeyboardModifierPressed())
        .Subscribe(_ => toggleNoteTypeAction.ExecuteAndNotify(selectionControl.GetSelectedNotes(), ENoteType.Golden));

        InputManager.GetInputAction(R.InputActions.songEditor_toggleNoteTypeFreestyle).PerformedAsObservable()
        .Where(_ => !AnyInputFieldHasFocus())
        .Where(_ => !InputUtils.AnyKeyboardModifierPressed())
        .Subscribe(_ => toggleNoteTypeAction.ExecuteAndNotify(selectionControl.GetSelectedNotes(), ENoteType.Freestyle));

        InputManager.GetInputAction(R.InputActions.songEditor_toggleNoteTypeNormal).PerformedAsObservable()
        .Where(_ => !AnyInputFieldHasFocus())
        .Where(_ => !InputUtils.AnyKeyboardModifierPressed())
        .Subscribe(_ => toggleNoteTypeAction.ExecuteAndNotify(selectionControl.GetSelectedNotes(), ENoteType.Normal));

        InputManager.GetInputAction(R.InputActions.songEditor_toggleNoteTypeRap).PerformedAsObservable()
        .Where(_ => !AnyInputFieldHasFocus())
        .Where(_ => !InputUtils.AnyKeyboardModifierPressed())
        .Subscribe(_ => toggleNoteTypeAction.ExecuteAndNotify(selectionControl.GetSelectedNotes(), ENoteType.Rap));

        InputManager.GetInputAction(R.InputActions.songEditor_toggleNoteTypeRapGolden).PerformedAsObservable()
        .Where(_ => !AnyInputFieldHasFocus())
        .Where(_ => !InputUtils.AnyKeyboardModifierPressed())
        .Subscribe(_ => toggleNoteTypeAction.ExecuteAndNotify(selectionControl.GetSelectedNotes(), ENoteType.RapGolden));

        // Zoom and scroll with mouse wheel
        InputManager.GetInputAction(R.InputActions.ui_scrollWheel).PerformedAsObservable()
        .Where(_ => !AnyInputFieldHasFocus())
        .Subscribe(OnScrollWheel);

        // Zoom horizontal with shortcuts
        InputManager.GetInputAction(R.InputActions.songEditor_zoomInHorizontal).PerformedAsObservable()
        .Where(_ => !AnyInputFieldHasFocus())
        .Where(_ => !InputUtils.IsKeyboardShiftPressed())
        .Subscribe(context =>
        {
            noteAreaControl.ZoomHorizontal(1);
        });
        InputManager.GetInputAction(R.InputActions.songEditor_zoomOutHorizontal).PerformedAsObservable()
        .Where(_ => !AnyInputFieldHasFocus())
        .Where(_ => !InputUtils.IsKeyboardShiftPressed())
        .Subscribe(context =>
        {
            noteAreaControl.ZoomHorizontal(-1);
        });

        // Zoom vertical with shortcuts
        InputManager.GetInputAction(R.InputActions.songEditor_zoomInVertical).PerformedAsObservable()
        .Where(_ => !AnyInputFieldHasFocus())
        .Where(_ => InputManager.GetInputAction(R.InputActions.songEditor_zoomOutVertical).ReadValue <float>() == 0)
        .Subscribe(context =>
        {
            noteAreaControl.ZoomVertical(1);
        });
        InputManager.GetInputAction(R.InputActions.songEditor_zoomOutVertical).PerformedAsObservable()
        .Where(_ => !AnyInputFieldHasFocus())
        .Subscribe(context => noteAreaControl.ZoomVertical(-1));
    }
示例#3
0
    private void Start()
    {
        InputManager.AdditionalInputActionInfos.Add(new InputActionInfo("Zoom Horizontal", "Ctrl+Mouse Wheel | 2 Finger Pinch-gesture"));
        InputManager.AdditionalInputActionInfos.Add(new InputActionInfo("Zoom Vertical", "Ctrl+Shift+Mouse Wheel | 2 Finger Pinch-gesture"));
        InputManager.AdditionalInputActionInfos.Add(new InputActionInfo("Scroll Horizontal", "Mouse Wheel | Arrow Keys | 2 Finger Drag | Middle Mouse Button+Drag"));
        InputManager.AdditionalInputActionInfos.Add(new InputActionInfo("Scroll Vertical", "Shift+Mouse Wheel | Shift+Arrow Keys | 2 Finger Drag | Middle Mouse Button+Drag"));
        InputManager.AdditionalInputActionInfos.Add(new InputActionInfo("Move Note Horizontal", "Shift+Arrow Keys | 1 (Numpad) | 3 (Numpad)"));
        InputManager.AdditionalInputActionInfos.Add(new InputActionInfo("Move Note Vertical", "Shift+Arrow Keys | Minus (Numpad) | Plus (Numpad)"));
        InputManager.AdditionalInputActionInfos.Add(new InputActionInfo("Move Note Vertical One Octave", "Ctrl+Shift+Arrow Keys"));
        InputManager.AdditionalInputActionInfos.Add(new InputActionInfo("Move Left Side of Note", "Ctrl+Arrow Keys | Divide (Numpad) | Multiply (Numpad)"));
        InputManager.AdditionalInputActionInfos.Add(new InputActionInfo("Move Right side of Note", "Alt+Arrow Keys | 7 (Numpad) | 8 (Numpad) | 9 (Numpad)"));
        InputManager.AdditionalInputActionInfos.Add(new InputActionInfo("Select Next Note", "6 (Numpad)"));
        InputManager.AdditionalInputActionInfos.Add(new InputActionInfo("Select Previous Note", "4 (Numpad)"));
        InputManager.AdditionalInputActionInfos.Add(new InputActionInfo("Play Selected Notes", "5 (Numpad)"));
        InputManager.AdditionalInputActionInfos.Add(new InputActionInfo("Toggle Play Pause", "Double Click"));
        InputManager.AdditionalInputActionInfos.Add(new InputActionInfo("Play MIDI Sound of Note", "Ctrl+Click Note"));

        // Show / hide help
        InputManager.GetInputAction(R.InputActions.usplay_toggleHelp).PerformedAsObservable()
        .Subscribe(_ => inputActionInfoOverlay.SetActive(!inputActionInfoOverlay.activeSelf));

        // Jump to start / end of song
        InputManager.GetInputAction(R.InputActions.songEditor_jumpToStartOfSong).PerformedAsObservable()
        .Subscribe(_ => songAudioPlayer.PositionInSongInMillis = 0);
        InputManager.GetInputAction(R.InputActions.songEditor_jumpToEndOfSong).PerformedAsObservable()
        .Subscribe(_ => songAudioPlayer.PositionInSongInMillis = songAudioPlayer.DurationOfSongInMillis - 1);

        // Play / pause
        InputManager.GetInputAction(R.InputActions.songEditor_togglePlayPause).PerformedAsObservable()
        .Where(_ => !InputUtils.IsKeyboardControlPressed())
        .Subscribe(_ => songEditorSceneController.ToggleAudioPlayPause());

        // Play only the selected notes
        InputManager.GetInputAction(R.InputActions.songEditor_playSelectedNotes).PerformedAsObservable()
        .Subscribe(_ => PlayAudioInRangeOfNotes(selectionController.GetSelectedNotes()));

        // Stop playback or return to last scene
        InputManager.GetInputAction(R.InputActions.usplay_back).PerformedAsObservable()
        .Subscribe(OnBack);

        // Select all notes
        InputManager.GetInputAction(R.InputActions.songEditor_selectAll).PerformedAsObservable()
        .Subscribe(_ => selectionController.SelectAll());

        // Select next / previous note
        InputManager.GetInputAction(R.InputActions.songEditor_selectNextNote).PerformedAsObservable()
        .Where(_ => !InputUtils.AnyKeyboardModifierPressed())
        .Subscribe(_ => selectionController.SelectNextNote());
        InputManager.GetInputAction(R.InputActions.songEditor_selectPreviousNote).PerformedAsObservable()
        .Subscribe(_ => selectionController.SelectPreviousNote());

        // Delete notes
        InputManager.GetInputAction(R.InputActions.songEditor_delete).PerformedAsObservable()
        .Subscribe(_ => deleteNotesAction.ExecuteAndNotify(selectionController.GetSelectedNotes()));

        // Undo
        InputManager.GetInputAction(R.InputActions.songEditor_undo).PerformedAsObservable()
        .Subscribe(_ => historyManager.Undo());

        // Redo
        InputManager.GetInputAction(R.InputActions.songEditor_redo).PerformedAsObservable()
        .Subscribe(_ => historyManager.Redo());

        // Save
        InputManager.GetInputAction(R.InputActions.songEditor_save).PerformedAsObservable()
        .Subscribe(_ => songEditorSceneController.SaveSong());

        // Start editing of lyrics
        InputManager.GetInputAction(R.InputActions.songEditor_editLyrics).PerformedAsObservable()
        .Subscribe(_ => songEditorSceneController.StartEditingNoteText());

        // Change position in song
        InputManager.GetInputAction(R.InputActions.ui_navigate).PerformedAsObservable()
        .Subscribe(OnNavigate);

        // Make golden / freestyle / normal
        InputManager.GetInputAction(R.InputActions.songEditor_toggleNoteTypeGolden).PerformedAsObservable()
        .Where(_ => !InputUtils.AnyKeyboardModifierPressed())
        .Subscribe(_ => toggleNoteTypeAction.ExecuteAndNotify(selectionController.GetSelectedNotes(), ENoteType.Golden));

        InputManager.GetInputAction(R.InputActions.songEditor_toggleNoteTypeFreestyle).PerformedAsObservable()
        .Where(_ => !InputUtils.AnyKeyboardModifierPressed())
        .Subscribe(_ => toggleNoteTypeAction.ExecuteAndNotify(selectionController.GetSelectedNotes(), ENoteType.Freestyle));

        InputManager.GetInputAction(R.InputActions.songEditor_toggleNoteTypeNormal).PerformedAsObservable()
        .Where(_ => !InputUtils.AnyKeyboardModifierPressed())
        .Subscribe(_ => toggleNoteTypeAction.ExecuteAndNotify(selectionController.GetSelectedNotes(), ENoteType.Normal));

        InputManager.GetInputAction(R.InputActions.songEditor_toggleNoteTypeRap).PerformedAsObservable()
        .Where(_ => !InputUtils.AnyKeyboardModifierPressed())
        .Subscribe(_ => toggleNoteTypeAction.ExecuteAndNotify(selectionController.GetSelectedNotes(), ENoteType.Rap));

        InputManager.GetInputAction(R.InputActions.songEditor_toggleNoteTypeRapGolden).PerformedAsObservable()
        .Where(_ => !InputUtils.AnyKeyboardModifierPressed())
        .Subscribe(_ => toggleNoteTypeAction.ExecuteAndNotify(selectionController.GetSelectedNotes(), ENoteType.RapGolden));

        // Zoom and scroll with mouse wheel
        InputManager.GetInputAction(R.InputActions.ui_scrollWheel).PerformedAsObservable()
        .Subscribe(OnScrollWheel);

        // Zoom horizontal with shortcuts
        InputManager.GetInputAction(R.InputActions.songEditor_zoomInHorizontal).PerformedAsObservable()
        .Where(_ => !InputUtils.IsKeyboardShiftPressed())
        .Subscribe(context =>
        {
            noteArea.ZoomHorizontal(1);
        });
        InputManager.GetInputAction(R.InputActions.songEditor_zoomOutHorizontal).PerformedAsObservable()
        .Where(_ => !InputUtils.IsKeyboardShiftPressed())
        .Subscribe(context =>
        {
            noteArea.ZoomHorizontal(-1);
        });

        // Zoom vertical with shortcuts
        InputManager.GetInputAction(R.InputActions.songEditor_zoomInVertical).PerformedAsObservable()
        .Where(_ => InputManager.GetInputAction(R.InputActions.songEditor_zoomOutVertical).ReadValue <float>() == 0)
        .Subscribe(context =>
        {
            noteArea.ZoomVertical(1);
        });
        InputManager.GetInputAction(R.InputActions.songEditor_zoomOutVertical).PerformedAsObservable()
        .Subscribe(context => noteArea.ZoomVertical(-1));
    }