/// <summary> /// Adds a handler for joystick axis input. /// </summary> public static void AddInputHandler( DeviceType dt, OVRGamepadController.Axis axis, OnKeyDown onDown, OnKeyHeld onHeld, OnKeyUp onUp) { keyInfos.Add(new KeyInfo(dt, axis, onDown, onHeld, onUp)); }
/// <summary> /// Adds a handler for mouse button input. /// </summary> public static void AddInputHandler( DeviceType dt, MouseButton mouseButton, OnKeyDown onDown, OnKeyHeld onHeld, OnKeyUp onUp) { keyInfos.Add(new KeyInfo(dt, mouseButton, onDown, onHeld, onUp)); }
/// <summary> /// Adds a handler for key input /// </summary> public static void AddInputHandler( DeviceType dt, string keyName, OnKeyDown onDown, OnKeyHeld onHeld, OnKeyUp onUp) { keyInfos.Add(new KeyInfo(dt, keyName, onDown, onHeld, onUp)); }
//====================== // AddInputHandler // Adds a hander for mouse button input //====================== public static void AddInputHandler(eDeviceType dt, eMouseButton mouseButton, OnKeyDown onDown, OnKeyHeld onHeld, OnKeyUp onUp, int joystickNum = 0, bool exc = false) { KeyInfo k = new KeyInfo(dt, mouseButton, onDown, onHeld, onUp); k.WasDown = GetMouseButton(mouseButton); k.exclusive = exc; InputMap[joystickNum].KeyInfos.Add(k); }
//====================== // AddInputHandler // Adds a hander for key input //====================== public static void AddInputHandler(eDeviceType dt, string keyName, OnKeyDown onDown, OnKeyHeld onHeld, OnKeyUp onUp, int joystickNum = 0, bool exc = false) { KeyInfo k = new KeyInfo(dt, keyName, onDown, onHeld, onUp); k.WasDown = Input.GetKey(keyName); k.exclusive = exc; InputMap[joystickNum].KeyInfos.Add(k); }
public void GetKey() { if (Input.GetKey(_keyCode)) { OnKeyHeld.Invoke(true); } else { OnKeyHeld.Invoke(false); } }
private void SetUpChildSatellites(BoundingBox bound, KeyCode code, VisualPayload payload) { var newSatellite = bound.gameObject.AddComponent <KeyPressSatellite>(); newSatellite.KeyCode = code; newSatellite.OnKeyDown += () => JobManager.Instance.StartJob( OnKeyDown.Transmit(payload), jobName: "Key Down", startImmediately: true, maxExecutionsPerFrame: 1); newSatellite.OnKeyHeld += () => JobManager.Instance.StartJob( OnKeyHeld.Transmit(payload), jobName: "Key Held", startImmediately: true, maxExecutionsPerFrame: 1); newSatellite.OnKeyUp += () => JobManager.Instance.StartJob( OnKeyUp.Transmit(payload), jobName: "Key Up", startImmediately: true, maxExecutionsPerFrame: 1); }
// key constructor public KeyInfo( eDeviceType inDeviceType, string inKeyName, OnKeyDown inDownHandler, OnKeyHeld inHeldHandler, OnKeyUp inUpHandler ) { DeviceType = inDeviceType; KeyName = inKeyName; MouseButton = eMouseButton.None; JoystickButton = OVRGamepadController.Button.None; JoystickAxis = OVRGamepadController.Axis.None; Threshold = 1000.0f; WasDown = false; DownHandler = inDownHandler; HeldHandler = inHeldHandler; UpHandler = inUpHandler; }
public static void RemoveInputHandlerButton(OnKeyDown onDown, OnKeyHeld onHeld, OnKeyUp onUp, int joystickNum = 0) { if (InputMap.Count <= joystickNum) { return; } for (int i = InputMap[joystickNum].KeyInfos.Count - 1; i >= 0; --i) { KeyInfo k = InputMap[joystickNum].KeyInfos[i]; if (k.DownHandler == onDown && k.HeldHandler == onHeld && k.UpHandler == onUp) { InputMap[joystickNum].KeyInfos.RemoveAt(i); } } }
// joystick button constructor public KeyInfo(eDeviceType inDeviceType, Button inJoystickButton, OnKeyDown inDownHandler, OnKeyHeld inHeldHandler, OnKeyUp inUpHandler) { DeviceType = inDeviceType; KeyName = ButtonNames[(int)inJoystickButton]; MouseButton = eMouseButton.None; JoystickButton = inJoystickButton; JoystickAxis = Axis.None; Threshold = 1000.0f; WasDown = false; DownHandler = inDownHandler; HeldHandler = inHeldHandler; UpHandler = inUpHandler; }
// joystick axis constructor public KeyInfo(eDeviceType inDeviceType, OVRGamepadController.Axis inJoystickAxis, OnKeyDown inDownHandler, OnKeyHeld inHeldHandler, OnKeyUp inUpHandler) { DeviceType = inDeviceType; KeyName = OVRGamepadController.AxisNames[(int)inJoystickAxis]; MouseButton = eMouseButton.None; JoystickButton = OVRGamepadController.Button.None; JoystickAxis = inJoystickAxis; Threshold = 0.5f; WasDown = false; DownHandler = inDownHandler; HeldHandler = inHeldHandler; UpHandler = inUpHandler; }
// mouse button constructor public KeyInfo(eDeviceType inDeviceType, eMouseButton inMouseButton, OnKeyDown inDownHandler, OnKeyHeld inHeldHandler, OnKeyUp inUpHandler) { DeviceType = inDeviceType; KeyName = "Mouse Button " + (int)inMouseButton; MouseButton = inMouseButton; JoystickButton = OVRGamepadController.Button.None; JoystickAxis = OVRGamepadController.Axis.None; Threshold = 1000.0f; WasDown = false; DownHandler = inDownHandler; HeldHandler = inHeldHandler; UpHandler = inUpHandler; }
/// <summary> /// Joystick axis constructor. /// </summary> public KeyInfo( DeviceType inDeviceType, OVRGamepadController.Axis inJoystickAxis, OnKeyDown inDownHandler, OnKeyHeld inHeldHandler, OnKeyUp inUpHandler) { deviceType = inDeviceType; keyName = OVRGamepadController.AxisNames[(int)inJoystickAxis]; mouseButton = MouseButton.None; joystickButton = OVRGamepadController.Button.None; joystickAxis = inJoystickAxis; threshold = 0.5f; wasDown = false; downHandler = inDownHandler; heldHandler = inHeldHandler; upHandler = inUpHandler; }
/// <summary> /// Mouse button constructor. /// </summary> public KeyInfo( DeviceType inDeviceType, MouseButton inMouseButton, OnKeyDown inDownHandler, OnKeyHeld inHeldHandler, OnKeyUp inUpHandler) { deviceType = inDeviceType; keyName = "Mouse Button " + (int)inMouseButton; mouseButton = inMouseButton; joystickButton = OVRGamepadController.Button.None; joystickAxis = OVRGamepadController.Axis.None; threshold = 1000.0f; wasDown = false; downHandler = inDownHandler; heldHandler = inHeldHandler; upHandler = inUpHandler; }
//====================== // AddInputHandler // Adds a hander for joystick button input //====================== public static void AddInputHandler( eDeviceType dt, OVRGamepadController.Button joystickButton, OnKeyDown onDown, OnKeyHeld onHeld, OnKeyUp onUp ) { KeyInfos.Add( new KeyInfo( dt, joystickButton, onDown, onHeld, onUp ) ); }
//====================== // AddInputHandler // Adds a hander for joystick axis input //====================== public static void AddInputHandler(eDeviceType dt, Axis axis, OnKeyDown onDown, OnKeyHeld onHeld, OnKeyUp onUp, int joystickNum = 0) { InputMap[joystickNum].KeyInfos.Add(new KeyInfo(dt, axis, onDown, onHeld, onUp)); }
// joystick axis constructor public KeyInfo( eDeviceType inDeviceType, OVRGamepadController.Axis inJoystickAxis, OnKeyDown inDownHandler, OnKeyHeld inHeldHandler, OnKeyUp inUpHandler ) { DeviceType = inDeviceType; KeyName = OVRGamepadController.AxisNames[(int)inJoystickAxis]; MouseButton = eMouseButton.None; JoystickButton = OVRGamepadController.Button.None; JoystickAxis = inJoystickAxis; Threshold = 0.5f; WasDown = false; DownHandler = inDownHandler; HeldHandler = inHeldHandler; UpHandler = inUpHandler; }
//====================== // AddInputHandler // Adds a hander for joystick button input //====================== public static void AddInputHandler(eDeviceType dt, OVRGamepadController.Button joystickButton, OnKeyDown onDown, OnKeyHeld onHeld, OnKeyUp onUp) { KeyInfos.Add(new KeyInfo(dt, joystickButton, onDown, onHeld, onUp)); }
public void Update() { //Update keyboard states PrevKeyboardState = CurrentKeyboardState; CurrentKeyboardState = Keyboard.GetState(); //Update mouse states PrevMouseState = CurrentMouseState; CurrentMouseState = Mouse.GetState(); foreach (var key in KeySet) { var isDown = CurrentKeyboardState.IsKeyDown(key); var wasDown = PrevKeyboardState.IsKeyDown(key); if (isDown)//Key is down { //Key is currently held OnKeyHeld?.Invoke(this, new KeyEventArgs(key)); if (!wasDown)//Key has just been pressed { OnKeyDown?.Invoke(this, new KeyEventArgs(key)); } } else //Key is not down { if (wasDown)//Key has just been released { OnKeyUp?.Invoke(this, new KeyEventArgs(key)); } } } foreach (var button in ButtonSet) { bool isDown = false; bool wasDown = false; switch (button) { case MouseButton.left: { isDown = CurrentMouseState.LeftButton == ButtonState.Pressed; wasDown = PrevMouseState.LeftButton == ButtonState.Pressed; } break; case MouseButton.right: { isDown = CurrentMouseState.RightButton == ButtonState.Pressed; wasDown = PrevMouseState.RightButton == ButtonState.Pressed; } break; default: break; } if (isDown)//Button is down { OnMouseButtonHeld?.Invoke(this, new MouseEventArgs(button, CurrentMouseState)); if (!wasDown)//Button has just been pressed { OnMouseButtonDown?.Invoke(this, new MouseEventArgs(button, CurrentMouseState)); } } else { //Button is not down if (wasDown) //Button has just been released { OnMouseButtonUp?.Invoke(this, new MouseEventArgs(button, CurrentMouseState)); } } } }