Xbox One gamepad drivers

Installing the 360 wireless dongle

I’ve had to install the wireless dongle for the Xbox 360 gamepad before. Here’s how I did it.

Right click on Computer

Go to Properties

Click on Device Manager

Right click on the Unidentified Device

Go to Properties

Go to the Drive tab

Click on Update Driver…

Browse my for driver software

Let me pick from a list of device drivers on my computer

Microsoft Common Controller for Window Class

Xbox 360 Wireless Receiver for Windows

Update Driver Warning

Click Yes

Introduction

Adding controller support to a game can be very useful; many gamers feel more comfortable using controllers rather than a mouse and keyboard, and certain types of games work best when controllers are used. Using Unity and Xbox USB controllers, the process of implementing controller support is pretty straightforward. This tutorial will take you through the steps to add Xbox controller support for your Unity game.

Supplies

– Xbox controller: Either an Xbox 360 wired controller, an Xbox 360 wireless controller with a wireless USB dongle, or an Xbox One controller with a micro USB cable

– Unity3D

– A “can-do” attitude

Setting Up the Project

The first step to getting Xbox controllers working is to make sure the correct drivers are installed on your computer. On Windows, wired Xbox 360 controllers generally work out-of-the-box. Wireless Xbox controllers might require additional drivers to work, which come with the wireless USB dongle. Xbox One controllers require drivers which can be found on the Xbox support site: http://support.xbox.com/en-US/xbox-one/accessories/controller-pc-compatibility

In this tutorial, we will be adding controller support to a brand new Unity project. Start up Unity, and go to File > New Project.

Setting Up the Input Manager

In order to set up Unity so we can easily access controller inputs from scripts, we need to properly set up the Input Manager. Go to Edit > Project Settings > Input to open the Input Manager.

There are 20 total input buttons and axes on an Xbox controller, but for this demo we will only add the 4 face buttons, A, B, X, and Y, and the two joysticks. This is the most tedious part of the process, so if you’d like to skip it, I’ve provided a completed InputManager.asset file to download and use here:LINK

Add 8 new axes to the Input Manager by changing the size value. The first 4 inputs will represent the 4 face buttons. Open the dropdown menu for the first new Axis, and change the values to the following settings for the A button:

For the next 3 inputs, input the same settings for the other 3 face buttons, except for “Name” and “Positive Button”. The button settings should reflect the values on the Unity3D Xbox Controller wiki:

NOTE: Windows, Mac, and Linux all have different button values for the Xbox controller, as seen on the Wiki page. To make the process of switching between these platforms easy, the InputManager.asset file found in the Project Settings folder in your Unity project folder stores your input settings. If you create a separate InputManager.asset file for each platform, and store them in another folder, you can switch them in and out by replacing the file in your Unity project folder with the one for the desired platform.

The last 4 inputs will represent the 2 axes on the 2 joysticks. For the first one, change the values for the following settings for the X axis on the left joystick:

Input the same values for the next 3 inputs, for the left joystick Y axis, and the right joystick X and Y axes. Again, refer to the Xbox controller page on the Unity3D Wiki to find the correct axis values:

Setting Up a Scene

For this example we will create a simple scene to move a character around in. Add a plane with a collider as a floor, and add a capsule on top of it as a player. If the capsule has a capsule collider on it, remove the capsule collider and instead add a character controller component. Make sure there is a camera in the scene, and it is pointed at the objects in the scene. Finally, add a light into the scene so we can see our objects properly.

Coding the Player Movement

Next we will write a script to control our player. Create a new C# script called PlayerMovement, and open it in your editor of choice. Write the following code:

Finally, add this script as a component to your Capsule, and press play to test out your game.

Adding Player Number 2

Adding support for multiple controllers is a great way to include local multiplayer in your game. To add more controller inputs, add more axes to the Input Manager. Repeat the same process as before, except when entering the “Positive Button” values, include the number of the joystick. For example, instead of “joystick button 0”, write “joystick 2 button 0”. Similarly, for the left and right joystick axes, change the “Joy Num” dropdown value to reflect the correct joystick number. Finally, when writing the “Name” value for the buttons and joystick axes, add a suffix which denotes the joystick or player number. For example, instead of “LeftJoystickX”, write “LeftJoystickX_P2”. Remember to change all of these settings for your first set of inputs as well.

After changing all of the input settings, you will have to make some changes to the PlayerMovement script as well. Make the following changes (new or altered sections are written in bold):

After changing the script, duplicate your player object, and move it to the side a bit, so it’s not overlapping the first player. Select the first player, and look at your PlayerMovement component in the inspector. Because we made joystickNumber a public integer, we should be able to change it directly in the inspector. Change one player’s joystickNumber to 1 in the inspector, and change the other player’s to 2. This should allow you to control each player separately with 2 controllers.

Conclusion

Now that you’ve learned to set up basic controller support, you can use these skills for practically any game you make in Unity. This is a valuable skill to know for both allowing controllers for PC games, as well as for developing Unity games for consoles, like the Xbox. Take this knowledge with you, young game developer, and fly. Fly into the glorious future.

Might I suggest other ways to use your gamepad? PHL Collective’s newest game, Clusterpuck 99 supports up to 8 of them at once. I like to think of it as playing something similar to NHL 95′, but without having to buy that crappy EA adapter to have more than two gamepads attached to your genesis.

i donwnloaded the InputManager.asset but when i want to import it i have this message (unity 5,3,0)
“You are trying to import an asset which contains a global game manager. This is not allowed”
any toughts ?