Example #1
0
        void OnEnable()
        {
            // See PlayerActions.cs for this setup.
            playerActions = MMInputActions.CreateWithDefaultBindings();
            //playerActions.Move.OnLastInputTypeChanged += ( lastInputType ) => Debug.Log( lastInputType );

            LoadBindings();
        }
Example #2
0
        public static MMInputActions CreateWithDefaultBindings()
        {
            var playerActions = new MMInputActions();

            // How to set up mutually exclusive keyboard bindings with a modifier key.
            // playerActions.Back.AddDefaultBinding( Key.Shift, Key.Tab );
            // playerActions.Next.AddDefaultBinding( KeyCombo.With( Key.Tab ).AndNot( Key.Shift ) );

            playerActions.Shoot.AddDefaultBinding(InputControlType.Action3);
            playerActions.Shoot.AddDefaultBinding(Mouse.LeftButton);

            playerActions.SecondaryShoot.AddDefaultBinding(InputControlType.RightBumper);

            playerActions.SwitchCharacter.AddDefaultBinding(InputControlType.Action4);

            playerActions.Jump.AddDefaultBinding(Key.Space);
            playerActions.Jump.AddDefaultBinding(InputControlType.Action1);

            playerActions.Up.AddDefaultBinding(Key.W);
            playerActions.Down.AddDefaultBinding(Key.S);
            playerActions.Left.AddDefaultBinding(Key.A);
            playerActions.Right.AddDefaultBinding(Key.D);

            playerActions.Run.AddDefaultBinding(Key.Shift);
            playerActions.Run.AddDefaultBinding(InputControlType.Action3);

            playerActions.Pause.AddDefaultBinding(Key.Escape);
            playerActions.Pause.AddDefaultBinding(InputControlType.Start);
            playerActions.Grab.AddDefaultBinding(Key.Tab);
            playerActions.Throw.AddDefaultBinding(InputControlType.Back);

            playerActions.Left.AddDefaultBinding(InputControlType.LeftStickLeft);
            playerActions.Right.AddDefaultBinding(InputControlType.LeftStickRight);
            playerActions.Up.AddDefaultBinding(InputControlType.LeftStickUp);
            playerActions.Down.AddDefaultBinding(InputControlType.LeftStickDown);

            playerActions.DLeft.AddDefaultBinding(InputControlType.DPadLeft);
            playerActions.DRight.AddDefaultBinding(InputControlType.DPadRight);
            playerActions.DUp.AddDefaultBinding(InputControlType.DPadUp);
            playerActions.DDown.AddDefaultBinding(InputControlType.DPadDown);


            playerActions.ListenOptions.IncludeUnknownControllers    = true;
            playerActions.ListenOptions.MaxAllowedBindings           = 2;
            playerActions.ListenOptions.MaxAllowedBindingsPerType    = 2;
            playerActions.ListenOptions.AllowDuplicateBindingsPerSet = true;
            // playerActions.ListenOptions.UnsetDuplicateBindingsOnSet = true;
            playerActions.ListenOptions.IncludeMouseButtons     = true;
            playerActions.ListenOptions.IncludeMouseButtons     = true;
            playerActions.ListenOptions.IncludeMouseScrollWheel = true;
            // playerActions.ListenOptions.IncludeModifiersAsFirstClassKeys = true;

            playerActions.ListenOptions.OnBindingFound = (action, binding) => {
                if (binding == new KeyBindingSource(Key.Escape))
                {
                    action.StopListeningForBinding();
                    return(false);
                }
                return(true);
            };

            playerActions.ListenOptions.OnBindingAdded += (action, binding) => {
                Debug.Log("Binding added... " + binding.DeviceName + ": " + binding.Name);
            };

            playerActions.ListenOptions.OnBindingRejected += (action, binding, reason) => {
                Debug.Log("Binding rejected... " + reason);
            };

            return(playerActions);
        }