Unity from a game controller
The Unity layout is built into InputConfig, free on the Mac App Store. You don't have to make an account, there are no subscriptions, and nothing is locked. Optimized for Apple silicon.
On a Mac: The Unity Editor reads its default shortcuts and mouse buttons from this layout. A game you test still reads the controller through its own input system.
Yes, you can drive the Unity editor on a Mac from a game controller. Unity's tool keys are Q, W, E, R and T in a row, and the layout puts them on the four face buttons and a bumper in that order. Play is one button and Frame Selected another. It is for testing a controller game without putting the controller down.
On this page: 7 sections
The layout, control by control
How the layout thinks
- Pick a tool. Hand (Q), Move (W), Rotate (E) and Scale (R) on the face buttons. Rect (T) on the left bumper.
- Frame. Frame Selected (F) on the right bumper.
- Look and select. The left stick is the pointer, the right stick zooms, the right trigger selects, and the left trigger holds the right mouse button for looking around and context menus.
- Pan. The left stick click is the middle mouse button.
- Save and play. Save on Share or View, Play (Command P) on Options.
Holding the right mouse button in the Scene view also turns on Unity's flythrough keys, W, A, S and D, so with the left trigger held, the Move tool button flies forward. The tools sit in Unity's own order, Q to T, left to right.
If your game reads the pad too
Your game reads the controller through Unity's input system whether or not the preset is on, so with the preset running, a press in Play mode reaches both. Climb this ladder, smallest step first:
- Turn the preset off in Play mode. If its keys get in the way, deactivate it while you test.
- Let auto-switch do it for a built player. List the editor under Activate when these apps are in front and turn on automatic switching in Settings, Advanced. The built player gets the pad to itself.
In-editor Play mode shares the editor's window, so auto-switch cannot tell them apart there. A running preset doubles every press in a game that reads the pad itself.
Tune it for Unity
- Pause and step. Put Command Shift P and Command Option P on the stick clicks.
- Console. Put Command Shift C on the touchpad press.
- A slower pointer. Use the Pointer speed slider on the preset's page, for the Inspector's small fields.
Godot and Unreal have their own entries with their own keys. Play, pause and step from the pad you are testing with.
Get it in two clicks
- Get InputConfig free on the Mac App Store, open it, and click Smart Preset Maker on the welcome screen.
- Search for Unity and pick it. The layout is created as a preset in your sidebar, named and ready.
- Press Activate. Every row can be changed afterwards: the editor's Scan button rebinds any control the moment you touch it.
Every binding, as a table

| Controller | Sends | What it does |
|---|---|---|
| Left stick left | Mouse motion left (speed 16) | Pointer left |
| Left stick right | Mouse motion right (speed 16) | Pointer right |
| Left stick up | Mouse motion up (speed 16) | Pointer up |
| Left stick down | Mouse motion down (speed 16) | Pointer down |
| Right stick down | Scroll down | Zoom out |
| Right stick up | Scroll up | Zoom in |
| Right trigger | Left click | Select (left click) |
| Left trigger | Right click | Look / context (right click) |
| A / Cross | Q | Hand / pan tool (Q) |
| B / Circle | W | Move tool (W) |
| X / Square | E | Rotate tool (E) |
| Y / Triangle | R | Scale tool (R) |
| LB / L1 | T | Rect tool (T) |
| RB / R1 | F | Frame selected (F) |
| L3 (left stick click) | Middle click | Pan (middle mouse) |
| Back / Share / Select | Command (Left), S | Save scene (Cmd+S) |
| Start / Options | Command (Left), P | Play (Cmd+P) |
Button names follow the Xbox / PlayStation pair shown in the editor, so A / Cross is the bottom face button on either pad. On a Switch Pro Controller the bottom button is labeled B; the mapping still fires on position.
Questions
Does play mode get the controller?
Your game reads the controller through Unity's input system whether or not the preset is on. Turn the preset off in Play mode if its keys get in the way. Auto-switch can do it for a built player.
Does it work with Godot or Unreal?
Both have their own entries with their own keys.
Related
Completely free. You don't have to make an account, there are no subscriptions, and nothing is locked. Optimized for Apple silicon. Open source on GitHub.
Updated