public void Controls_CanFindControlsByExactPathCaseInsensitive() { var gamepad = InputSystem.AddDevice <Gamepad>(); using (var matches = InputSystem.FindControls("/gamePAD/LeftSTICK")) { Assert.That(matches, Has.Count.EqualTo(1)); Assert.That(matches, Has.Exactly(1).SameAs(gamepad.leftStick)); } }
public void Controls_CanFindControlsUsingWildcardsInMiddleOfNames() { var gamepad = InputSystem.AddDevice <Gamepad>(); using (var matches = InputSystem.FindControls("/g*pad/leftStick")) { Assert.That(matches, Has.Count.EqualTo(1)); Assert.That(matches, Has.Exactly(1).SameAs(gamepad.leftStick)); } }
public void Controls_CanOmitLeadingSlashWhenFindingControls() { var gamepad = InputSystem.AddDevice <Gamepad>(); using (var matches = InputSystem.FindControls("gamepad/leftStick")) { Assert.That(matches, Has.Count.EqualTo(1)); Assert.That(matches, Has.Exactly(1).SameAs(gamepad.leftStick)); } }
public void Controls_CanFindChildControlsOfControlsFoundByUsage() { var gamepad = InputSystem.AddDevice <Gamepad>(); using (var matches = InputSystem.FindControls("/gamepad/{Primary2DMotion}/x")) { Assert.That(matches, Has.Count.EqualTo(1)); Assert.That(matches, Has.Exactly(1).SameAs(gamepad.leftStick.x)); } }
public void Controls_CanFindControlsByDisplayName() { var gamepad = InputSystem.AddDevice <Gamepad>(); using (var matches = InputSystem.FindControls("<Gamepad>/#(right shoulder)")) { Assert.That(matches, Has.Count.EqualTo(1)); Assert.That(matches, Has.Exactly(1).SameAs(gamepad.rightShoulder)); } }
public void Controls_CanFindControlsByLayout() { var gamepad = InputSystem.AddDevice <Gamepad>(); using (var matches = InputSystem.FindControls("/gamepad/<stick>")) { Assert.That(matches, Has.Count.EqualTo(2)); Assert.That(matches, Has.Exactly(1).SameAs(gamepad.leftStick)); Assert.That(matches, Has.Exactly(1).SameAs(gamepad.rightStick)); } }
public void Controls_FindingControlsByUsage_IgnoresUsagesOnDevice() { var gamepad = InputSystem.AddDevice <Gamepad>(); InputSystem.SetDeviceUsage(gamepad, "Primary2DMotion"); using (var matches = InputSystem.FindControls("<Gamepad>/{Primary2DMotion}")) { Assert.That(matches, Has.Count.EqualTo(1)); Assert.That(matches, Has.Exactly(1).SameAs(gamepad.leftStick)); } }
public void Controls_CanFindControlsByTheirAliases() { var gamepad = InputSystem.AddDevice <Gamepad>(); using (var matchByName = InputSystem.FindControls("/gamepad/buttonSouth")) using (var matchByAlias1 = InputSystem.FindControls("/gamepad/a")) using (var matchByAlias2 = InputSystem.FindControls("/gamepad/cross")) { Assert.That(matchByName, Has.Count.EqualTo(1)); Assert.That(matchByName, Has.Exactly(1).SameAs(gamepad.buttonSouth)); Assert.That(matchByAlias1, Is.EqualTo(matchByName)); Assert.That(matchByAlias2, Is.EqualTo(matchByName)); } }
public void Controls_CanFindControlsFromMultipleDevices() { var gamepad1 = InputSystem.AddDevice <Gamepad>(); var gamepad2 = InputSystem.AddDevice <Gamepad>(); using (var matches = InputSystem.FindControls("/*/*Stick")) { Assert.That(matches, Has.Count.EqualTo(4)); Assert.That(matches, Has.Exactly(1).SameAs(gamepad1.leftStick)); Assert.That(matches, Has.Exactly(1).SameAs(gamepad1.rightStick)); Assert.That(matches, Has.Exactly(1).SameAs(gamepad2.leftStick)); Assert.That(matches, Has.Exactly(1).SameAs(gamepad2.rightStick)); } }
public void Controls_CanFindControlsByBaseLayout() { const string json = @" { ""name"" : ""MyGamepad"", ""extend"" : ""Gamepad"" } "; InputSystem.RegisterLayout(json); var device = InputSystem.AddDevice("MyGamepad"); using (var matches = InputSystem.FindControls("/<gamepad>")) { Assert.That(matches, Has.Count.EqualTo(1)); Assert.That(matches, Has.Exactly(1).SameAs(device)); } }
public void TODO_Controls_CanFindControls_WithoutAllocatingGCMemory() { InputSystem.AddDevice <Gamepad>(); var list = new InputControlList <InputControl>(); try { Assert.That(() => { InputSystem.FindControls("<Gamepad>/*stick", ref list); }, Is.Not.AllocatingGCMemory()); } finally { list.Dispose(); } }
public void Controls_CanFindControlsUsingWildcards() { var gamepad = InputSystem.AddDevice <Gamepad>(); using (var matches1 = InputSystem.FindControls("<Gamepad>/left*")) using (var matches2 = InputSystem.FindControls("<Gamepad>/*Trigger")) { Assert.That(matches1, Has.Count.EqualTo(4)); Assert.That(matches1, Has.Exactly(1).SameAs(gamepad.leftStick)); Assert.That(matches1, Has.Exactly(1).SameAs(gamepad.leftTrigger)); Assert.That(matches1, Has.Exactly(1).SameAs(gamepad.leftStickButton)); Assert.That(matches1, Has.Exactly(1).SameAs(gamepad.leftShoulder)); Assert.That(matches2, Has.Count.EqualTo(2)); Assert.That(matches2, Has.Exactly(1).SameAs(gamepad.leftTrigger)); Assert.That(matches2, Has.Exactly(1).SameAs(gamepad.rightTrigger)); } }
public void Devices_SupportsXInputDevicesOnPlatform(string product, string manufacturer, string interfaceName, string layoutName) { var description = new InputDeviceDescription { interfaceName = interfaceName, product = product, manufacturer = manufacturer }; InputDevice device = null; Assert.That(() => device = InputSystem.AddDevice(description), Throws.Nothing); using (var matches = InputSystem.FindControls(string.Format("/<{0}>", layoutName))) Assert.That(matches, Has.Exactly(1).SameAs(device)); Assert.That(device.name, Is.EqualTo(layoutName)); Assert.That(device.description.manufacturer, Is.EqualTo(manufacturer)); Assert.That(device.description.interfaceName, Is.EqualTo(interfaceName)); Assert.That(device.description.product, Is.EqualTo(product)); }
public InputDevice selectDevice() { InputDevice device = new InputDevice(); var gamepads = InputSystem.FindControls("<Gamepads>"); var keyboards = InputSystem.FindControls("<Keyboard>"); Debug.Log("Keyboards count: " + keyboards.Count); if (gamepads.Count > 0)//hay gamepads { Debug.Log("gamepad find"); } else if (useKeyBoard && keyboards.Count > 0) { Debug.Log("return keyboard"); return(keyboards[0].device); } Debug.Log("return null"); return(null); }
[Retry(2)] // Warm up JIT. public void Controls_CanFindControls_WithoutAllocatingGCMemory() { // In InputTestFixture, we enable stack traces on native leak detection. This will allocate memory for the // stack trace when NativeArray creates the DisposeSentinel. Disable leak detection entirely for this test. NativeLeakDetection.Mode = NativeLeakDetectionMode.Disabled; InputSystem.AddDevice <Gamepad>(); // Get rid of GC heap activity from first input update. InputSystem.Update(); // Avoid GC activity from string literals. var kProfilerRegion = "Controls_CanFindControls_WithoutAllocatingGCMemory"; var kPath = "<Gamepad>/*stick"; Assert.That(() => { Profiler.BeginSample(kProfilerRegion); var list = new InputControlList <InputControl>(); InputSystem.FindControls(kPath, ref list); list.Dispose(); Profiler.EndSample(); }, Is.Not.AllocatingGCMemory()); }