public void Actions_CanApplyBindingOverridesToMaps() { var map = new InputActionMap(); var action1 = map.AddAction("action1", binding: "/<keyboard>/enter"); var action2 = map.AddAction("action2", binding: "/<gamepad>/buttonSouth"); var overrides = new List <InputBinding>(3) { new InputBinding { action = "action3", overridePath = "/gamepad/buttonSouth" }, // Noise. new InputBinding { action = "action2", overridePath = "/gamepad/rightTrigger" }, new InputBinding { action = "action1", overridePath = "/gamepad/leftTrigger" } }; map.ApplyBindingOverrides(overrides); action1.Enable(); action2.Enable(); Assert.That(action1.bindings[0].path, Is.EqualTo("/<keyboard>/enter")); Assert.That(action2.bindings[0].path, Is.EqualTo("/<gamepad>/buttonSouth")); Assert.That(action1.bindings[0].overridePath, Is.EqualTo("/gamepad/leftTrigger")); Assert.That(action2.bindings[0].overridePath, Is.EqualTo("/gamepad/rightTrigger")); }
public void Actions_CanRemoveBindingOverridesFromMap_WhenEnabled() { var keyboard = InputSystem.AddDevice <Keyboard>(); var gamepad = InputSystem.AddDevice <Gamepad>(); var map = new InputActionMap(); var action = map.AddAction("action1", binding: "<Keyboard>/enter"); var overrides = new List <InputBinding> { new InputBinding { action = "action1", overridePath = "<Gamepad>/leftTrigger" } }; map.ApplyBindingOverrides(overrides); map.Enable(); Assert.That(action.controls, Is.EquivalentTo(new[] { gamepad.leftTrigger })); map.RemoveBindingOverrides(overrides); Assert.That(action.bindings[0].overridePath, Is.Null); Assert.That(action.controls, Is.EquivalentTo(new[] { keyboard.enterKey })); }
public void Actions_CannotApplyBindingOverridesToMap_WhenEnabled() { var map = new InputActionMap(); map.AddAction("action1", binding: "/<keyboard>/enter").Enable(); var overrides = new List <InputBinding> { new InputBinding { action = "action1", overridePath = "/gamepad/leftTrigger" } }; Assert.That(() => map.ApplyBindingOverrides(overrides), Throws.InvalidOperationException); }
public void Actions_CanRemoveBindingOverridesFromMaps() { var map = new InputActionMap(); var action1 = map.AddAction("action1", binding: "/<keyboard>/enter"); var action2 = map.AddAction("action2", binding: "/<gamepad>/buttonSouth"); var overrides = new List <InputBinding> { new InputBinding { action = "action2", overridePath = "/gamepad/rightTrigger" }, new InputBinding { action = "action1", overridePath = "/gamepad/leftTrigger" } }; map.ApplyBindingOverrides(overrides); overrides.RemoveAt(1); // Leave only override for action2. map.RemoveBindingOverrides(overrides); Assert.That(action1.bindings[0].overridePath, Is.EqualTo("/gamepad/leftTrigger")); Assert.That(action2.bindings[0].overridePath, Is.Null); // Should have been removed. }