x


How do I use an XBOX 360 controller in Unity?

How do I get started with controllers? I want to map controls to a 360/PC controller but I don't know where to begin? I'm having no problems with mapping controls to keyboard and mouse, but I don't know how to have Unity recognize my controller to begin with. Any help would be great, thanks in advance.

more ▼

asked Nov 19, 2009 at 08:35 PM

apiotuch gravatar image

apiotuch
218 4 9 17

You should note that if you install the controller while Unity is running, it will not work until you restart the program. (Using model 1403;1086 and Unity 4.0.0f7).

Jan 17, 2013 at 03:35 AM AdventureCapital
(comments are locked)
10|3000 characters needed characters left

6 answers: sort voted first

Unity should recognise it so long as windows does (not sure how well 360 controllers work with Macs). If you plug in your 360 controller (wired works best) and get windows to see it fine under Game Controllers, you should have no problems using it in a Unity Game. Make sure you use Input.GetAxis and Input.GetButton rather than Keys, and check your Project>Input Settings for default button assignments to the joystick.

Edit: Two additional points: although the 360 controller works as-is on Vista and later, you will need to get a driver for XP to see it, much like the PS3 SixAxis does.

The other thing is, I would not recommend getting direct joystick keycodes in Unity; far better to use GetButtonDown("Fire1"), as that will be called if the user pressed left mouse button, left CTRL or Fire 1 on the joystick (by default). The user can also re-map the keys when using GetButton and GetAxis. Have a look at the 3D Platformer tutorial, you should find that works with controllers straight away. Interestingly, though, I found I had to invert the Y axis when using a controller or else the stick forward-back motion was the wrong way around.

more ▼

answered Nov 19, 2009 at 10:42 PM

Novodantis 1 gravatar image

Novodantis 1
1.8k 28 33 56

@Alexander when using names like "Fire1" instead of keycodes, is it possible to create custom names like "Magic1"?

May 04, 2012 at 11:53 PM numberkruncher

yea you can name it anyway you want in the inputmanager.

Jul 19, 2012 at 04:01 PM Mander
(comments are locked)
10|3000 characters needed characters left

If you are using a Mac, or want to package a driver for mac, here is an open source driver.

Mac 360 Controller Driver

Also of note, check out Post on buttons mappings for a 360 controller

more ▼

answered Nov 22, 2009 at 02:31 AM

Brian Kehrer gravatar image

Brian Kehrer
3k 21 29 71

(comments are locked)
10|3000 characters needed characters left

I tried it with a PS3 controller once. I had to:

  • Find a driver so Windows can recognize the PS3 Controller
  • Go to the GameController Settings in your Windows Systemsettings
  • Calibrate your controller (it is useful to write down which button is assigned to which number)
  • And use KeyCode.Joystick1Button0, KeyCode.Joystick1Button1, ... in Unity to get the Input.
more ▼

answered Nov 19, 2009 at 11:51 PM

Kiyaku gravatar image

Kiyaku
336 5 5 15

Or you can use a PS3 controller on a Linux

Feb 22 at 04:34 PM dudedude123
(comments are locked)
10|3000 characters needed characters left
more ▼

answered Mar 17, 2012 at 12:11 AM

melgu gravatar image

melgu
30

Unfortunately this page is at best incomplete. It talks about stuff like X = "joystick button 2". But The input "joystick button 2" does not exist (unless you create it, I guess).

Jun 07, 2013 at 06:35 PM dpk

No, joystick button 2 is the proper name for it. You can create an axis in the input manager using that as the button. It works the same as "right ctrl", or "right shift", etc.

Jul 06, 2013 at 09:35 PM porglezomp
(comments are locked)
10|3000 characters needed characters left

I wrote a simple script to get controller input in the same way other keys are accessed. It also works with the web player.

GamePad.GetAxis(GamePad.Axis.Left, 1);

GamePad.GetButtonDown(GamePad.Button.A, 1);

You can download it here:

more ▼

answered May 12, 2013 at 03:18 PM

Merrik44 gravatar image

Merrik44
46 3 6

(comments are locked)
10|3000 characters needed characters left
Your answer
toggle preview:

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Topics:

x50

asked: Nov 19, 2009 at 08:35 PM

Seen: 50500 times

Last Updated: May 17 at 04:07 PM