Ejemplo n.º 1
0
    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));
        }
    }
Ejemplo n.º 2
0
    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));
        }
    }
Ejemplo n.º 3
0
    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));
        }
    }
Ejemplo n.º 4
0
    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));
        }
    }
Ejemplo n.º 6
0
    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));
        }
    }
Ejemplo n.º 8
0
    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));
                }
    }
Ejemplo n.º 9
0
    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));
        }
    }
Ejemplo n.º 10
0
    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));
        }
    }
Ejemplo n.º 11
0
    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();
        }
    }
Ejemplo n.º 12
0
    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));
            }
    }
Ejemplo n.º 13
0
    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));
    }
Ejemplo n.º 14
0
    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);
    }
Ejemplo n.º 15
0
    [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());
    }