private bool IsFuzzySearchActive() { return(!InputUtils.AnyKeyboardModifierPressed() && !GameObjectUtils.InputFieldHasFocus(eventSystem)); }
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)); }
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)); }