public static KeyAction CreateAxis(string axisName) { KeyAction keyAction = new KeyAction(); keyAction.actionType = KeyActionType.Axis; keyAction.axisName = axisName; // keyAction.axisValueMonitor = new ValueMonitor<bool>(() => // { // keyAction.axisValue = Input.GetAxis(keyAction.axisName); // return keyAction.axisValue; // // }, // (float from, float to) => // { // if (to == 0) // { // keyAction.axisButtonRelease = true; // // } // // }); return(keyAction); }
public static KeyAction CreateAxisButtonPress(string axisName, float axisValueThreshold) { KeyAction keyAction = new KeyAction(); keyAction.actionType = KeyActionType.AxisButtonPress; keyAction.axisName = axisName; keyAction.axisValueThreshold = axisValueThreshold; keyAction.axisValueMonitor = new ValueMonitor <bool>(() => { keyAction.axisValue = Input.GetAxis(keyAction.axisName); // Debug.Log(axisName + "CreateAxisButtonPress = " + keyAction.axisValue); return(Mathf.Abs(keyAction.axisValue - keyAction.axisValueThreshold) < 0.001f); }, (bool from, bool to) => { if (to) { keyAction.axisButtonPress = to; } }); return(keyAction); }
public static KeyAction CreateButtonRelease(string buttonName) { KeyAction keyAction = new KeyAction(); keyAction.actionType = KeyActionType.ButtonRelease; keyAction.buttonName = buttonName; return(keyAction); }
public static KeyAction CreateKeyRelease(KeyCode keyCode) { KeyAction keyAction = new KeyAction(); keyAction.actionType = KeyActionType.Release; keyAction.keyCode = keyCode; return(keyAction); }
public static KeyAction CreateKeyPress(KeyCode keyCode) { KeyAction keyAction = new KeyAction(); keyAction.actionType = KeyActionType.Press; keyAction.keyCode = keyCode; return(keyAction); }
public override bool Equals(object obj) { KeyAction keyAction = obj as KeyAction; if (keyAction == null) { return(false); } if (GetHashCode() == keyAction.GetHashCode()) { return(true); } return(false); }
public KeyActionAndRoleActionBinding(KeyAction keyAction, RoleAction roleAction) { this.keyAction = keyAction; this.roleAction = roleAction; }
public void Update() { currActiveKeyBindingList.Clear(); foreach (var keyBinding in keyBindingList) { KeyAction keyAction = keyBinding.Key; KeyCode keyCode = keyAction.keyCode; KeyActionType keyActionType = keyAction.actionType; switch (keyActionType) { case KeyActionType.Press: if (Input.GetKeyDown(keyCode)) { currActiveKeyBindingList.Add(keyBinding); } break; case KeyActionType.Release: if (Input.GetKeyUp(keyCode)) { currActiveKeyBindingList.Add(keyBinding); } break; case KeyActionType.ButtonPress: if (Input.GetButtonDown(keyAction.buttonName)) { currActiveKeyBindingList.Add(keyBinding); } break; case KeyActionType.ButtonRelease: if (Input.GetButtonUp(keyAction.buttonName)) { currActiveKeyBindingList.Add(keyBinding); } break; case KeyActionType.AxisButtonPress: keyAction.Update(); if (keyAction.axisButtonPress) { keyAction.axisButtonPress = false; currActiveKeyBindingList.Add(keyBinding); } break; case KeyActionType.AxisButtonRelease: keyAction.Update(); if (keyAction.axisButtonRelease) { keyAction.axisButtonRelease = false; currActiveKeyBindingList.Add(keyBinding); } break; case KeyActionType.Axis: keyAction.axisValue = Input.GetAxis(keyAction.axisName); if (Mathf.Abs(keyAction.axisValue) > 0 || (keyAction.axisValue != keyAction.oldAxisValue)) { keyAction.oldAxisValue = keyAction.axisValue; currActiveKeyBindingList.Add(keyBinding); } break; default: break; } } // foreach (var keyBinding in currActiveKeyBindingList) // { // if (keyBinding.Key.actionType == KeyActionType.Press || keyBinding.Key.actionType == KeyActionType.Release) // Debug.Log((keyBinding.Key.actionType == KeyActionType.Press ? "按下" : "松开") + " " + keyBinding.Key.keyCode); // } if (onInput != null) { if (currActiveKeyBindingList.Count > 0) { onInput(currActiveKeyBindingList); } } }