# Game Controller Input

Enable game controller support for Unity paywalls.

Unity games often need paywalls that work with touch and controller input. Superwall supports
controller-triggered paywall actions when both the SDK and paywall template are configured for it.

Enable Controller Support in the SDK [#enable-controller-support-in-the-sdk]

Set `IsGameControllerEnabled` when configuring Superwall.

```csharp C#
using System.Collections.Generic;
using Superwall;

var options = new SuperwallOptions
{
    IsGameControllerEnabled = true,
    Logging = new Logging
    {
        Level = LogLevel.Debug,
        Scopes = new List<LogScope> { LogScope.GameControllerManager }
    }
};

Superwall.Configure("MY_PUBLIC_API_KEY", options: options);
```

Enable Controller Support on the Paywall [#enable-controller-support-on-the-paywall]

In the paywall editor, open the paywall settings and set **Game Controller Support** to **ENABLED**.

<img alt="Paywall editor Game Controller Support setting enabled" src="__img0" />

After this setting is enabled, click behavior controls can map an action to one of these controller
buttons:

* `a`
* `b`
* `x`
* `y`
* `l1`
* `l2`
* `r1`
* `r2`
* `menu`
* `options`

Test on Device [#test-on-device]

Controller support depends on the native iOS or Android runtime. The Unity Editor only logs SDK
method calls, so test with a controller connected to a real device, simulator, or emulator that
supports controller input.

> **Note**

If touch input works but controller input does not, verify both settings:
`IsGameControllerEnabled` in Unity and **Game Controller Support** in the paywall editor.