Currently Game Kit Controller requires a minimum version of Unity 2017.1.0f3. You should not use an older version than this because Unity is not backwards compatible with older versions of Unity.
GKC will soon require a minimum Unity version of Unity 2019.4 LTS in a future update, keep an eye on the Discord or Changelog for more information on when this change will happen.
Game Kit Controller generally works with all newer LTS versions too (i.e. 2020 LTS), and they are officially supported. Support for pre-release versions of Unity will be limited due to their unstable nature.
When the minimum version of Unity changes to 2019.4 LTS GKC will no longer support older Unity versions like 2018 or 2017.
If you need to continue using an older version of Unity you will unfortunately have to use an older version of GKC with support for your Unity version.
If you're more of a visual learner or just looking for videos tutorials for Game Kit Controller check out our tutorials section which has lots of videos showing you different mechanics and how to get started with Game Kit Controller.
The documentation is organised in a user friendly way. It is always advised you read first the Overview (i.e. the top most page of a section) page for each section, if it exists. Then you can decide to follow the guide from top to bottom or jump to between sections.
Throughout the documentation you'll come across hints, below we've provided a description of what each hint means and it's importance:
The Blue hint provides extra information on the current topic.
The Green hint is used for best practices, recommended actions and success notices.
The Orange hint is a warning message and will inform of something which can lead to errors or confusion.
The Red hint is a critical message and will often be used for important or error hints.
We are continually updating the Game Kit Controller documentation in an effort to ensure it's always remains current with the latest version of GKC. If you come across something that seems wrong, outdated or unclear please let us know on the Discord server and we'll be sure to get it improved as soon as possible.
The action system can be used with any type of humanoid animation. To work on this system, example animations from Mixamo were used as placeholders to configure multiple examples of the action system. Due to Mixamo animations can’t be included on asset, you can find the animations used on these examples on the public repository of Game Kit Controller on Github.
https://github.com/sr3888/GKC-Public-Repository
These animations are already with the regular settings applied to work on root motion properly (like rotation based on current pose, loop time, adjust speed, etc…). No extra setting is needed to try these examples.
All those animations and copyrights belong to Mixamo. You can get those animations and more at the official website of Mixamo: https://www.mixamo.com/#/
Of course, on this action system, you can use your own animations, from the asset store or any other store or web.
There are a couple of systems in the asset that uses a slice system for 3d meshes and skinned mesh renders, for the melee weapon system, allowing to cut surfaces and characters, similar to games like metal gear rising. Those systems can be found in the public repository of GKC, which is the same limb from a few lines above.
You only need to import those 2 packages and open the script file called sliceSystemUtils.cs and uncomment all the commented lines on that script, in order to use the slice system. This is not mandatory to be done if you won’t use the slice system in any part of your project.
It's really easy to setup Game Kit Controller in your project! Follow the steps below to import the package and get started!
If you are importing GKC into a new project then all you need to do is import the package and leave everything checked. That's it, you can skip the rest of this page, you're good to start making the game of your dreams!You can move onto the next section using the button below.
If you are importing GKC into an existing project then you'll need to uncheck the option to import the project settings and then continue onto Step #2.
When importing GKC into an existing project, or if you imported GKC without the project settings then you'll need to add the axes below into the Unity Input Manager (Edit > Project Settings > Input Manager) if you want to support using a gamepad.
These are the key mappings for four players when using local multiplayer (i.e. same screen multiplayer), but you can add just one if you are not going to use the local multiplayer functionality in your game.
Don't overwrite or remove the default axes set by Unity when adding the above axes - because these are also used and will be needed by GKC.
The key mapping values for each input above are identical for each the variant (i.e. player/input), only the variant names and the joystick number are different. For example Horizontal X1 has the same values as Horizontal X2, X3 and X4 with only the input "Name" and "Joy Num" being different. On Horizontal X1 the Joy Num is Joystick 1, whereas on Horizontal X2 the Joy Num is Joystick 2 etc. For the full breakdown of input values, you can check out the "Full Breakdown" tab of each section below.
After finishing adding the above key mappings then you will have the input for four players configured. This will allow up to four players to use the local multiplayer system.
When importing GKC into an existing project, or if you imported GKC without the project settings then you'll need to add the tags and layers used by this asset.
You can add the below tags and layers by going into the Unity Tags and Layers settings (Edit > Project Settings > Tags and Layers).
This step will no longer be necessary in the future and adding the key mappings will be handled by an in-editor setup wizard
This step will no longer be necessary in the future, adding the tags and layers will be handled by an in-editor setup wizard
That's it! You've completed importing GKC into your project and you can now start making the game of your dreams using Game Kit Controller!
Field
Horizontal X1
Horizontal X2
Horizontal X3
Horizontal X4
Name
Horizontal X1
Horizontal X2
Horizontal X3
Horizontal X4
Gravity
0
0
0
0
Dead
0.19
0.19
0.19
0.19
Sensitivity
1
1
1
1
Invert
-
-
-
-
Type
Joystick Axis
Joystick Axis
Joystick Axis
Joystick Axis
Axis
X axis
X axis
X axis
X axis
Joy Num
Joystick 1
Joystick 2
Joystick 3
Joystick 4
Field
Mouse X1
Mouse X2
Mouse X3
Mouse X4
Name
Mouse X1
Mouse X2
Mouse X3
Mouse X4
Gravity
0
0
0
0
Dead
0.19
0.19
0.19
0.19
Sensitivity
1
1
1
1
Invert
-
-
-
-
Type
Joystick Axis
Joystick Axis
Joystick Axis
Joystick Axis
Axis
4th axis (Joysticks)
4th axis (Joysticks)
4th axis (Joysticks)
4th axis (Joysticks)
Joy Num
Joystick 1
Joystick 2
Joystick 3
Joystick 4
Field
Left Trigger 1
Left Trigger 2
Left Trigger 3
Left Trigger 4
Name
Left Trigger 1
Left Trigger 2
Left Trigger 3
Left Trigger 4
Gravity
1000
1000
1000
1000
Dead
0.001
0.001
0.001
0.001
Sensitivity
100
100
100
100
Invert
-
-
-
-
Type
Joystick Axis
Joystick Axis
Joystick Axis
Joystick Axis
Axis
9th axis (Joysticks)
9th axis (Joysticks)
9th axis (Joysticks)
9th axis (Joysticks)
Joy Num
Joystick 1
Joystick 2
Joystick 3
Joystick 4
Field
Right Trigger 1
Right Trigger 2
Right Trigger 3
Right Trigger 4
Name
Right Trigger 1
Right Trigger 2
Right Trigger 3
Right Trigger 4
Gravity
1000
1000
1000
1000
Dead
0.001
0.001
0.001
0.001
Sensitivity
100
100
100
100
Invert
-
-
-
-
Type
Joystick Axis
Joystick Axis
Joystick Axis
Joystick Axis
Axis
10th axis (Joysticks)
10th axis (Joysticks)
10th axis (Joysticks)
10th axis (Joysticks)
Joy Num
Joystick 1
Joystick 2
Joystick 3
Joystick 4
Field
DPad X1
DPad X2
DPad X3
DPad X4
Name
DPad X1
DPad X2
DPad X3
DPad X4
Gravity
0
0
0
0
Dead
0.2
0.2
0.2
0.2
Sensitivity
1
1
1
1
Invert
-
-
-
-
Type
Joystick Axis
Joystick Axis
Joystick Axis
Joystick Axis
Axis
6th axis (Joysticks)
6th axis (Joysticks)
6th axis (Joysticks)
6th axis (Joysticks)
Joy Num
Joystick 1
Joystick 2
Joystick 3
Joystick 4
Field
Mouse Left Click
Name
Mouse Left Click
Positive Button
mouse 0
Gravity
1000
Dead
0.001
Sensitivity
1000
Invert
-
Type
Key or Mouse Button
Axis
X axis
Joy Num
Get Motion from all Joysticks
Tag No
Tag Value
Tag 0
box
Tag 1
sphere
Tag 2
moving
Tag 3
enemy
Tag 4
friend
Tag 5
device
Tag 6
inventory
Tag 7
vehicle
Layer No
Layer Value
#1
gravityObjects
#2
Armor Surface
#3
turrets
#4
player
#5
radar
#6
Scanner
#7
vehicle
#8
inventory
#9
npc
#10
weapons
#11
device
#12
Terrain
#13
Point&Click
#14
Dynamic Split Screen
#15
Transparent Mesh
Field
Vertical Y1
Vertical Y2
Vertical Y3
Vertical Y4
Name
Vertical Y1
Vertical Y2
Vertical Y3
Vertical Y4
Gravity
0
0
0
0
Dead
0.19
0.19
0.19
0.19
Sensitivity
1
1
1
1
Invert
Type
Joystick Axis
Joystick Axis
Joystick Axis
Joystick Axis
Axis
Y axis
Y axis
Y axis
Y axis
Joy Num
Joystick 1
Joystick 2
Joystick 3
Joystick 4
Field
Mouse Y1
Mouse Y2
Mouse Y3
Mouse Y4
Name
Mouse Y1
Mouse Y2
Mouse Y3
Mouse Y4
Gravity
0
0
0
0
Dead
0.19
0.19
0.19
0.19
Sensitivity
1
1
1
1
Invert
Type
Joystick Axis
Joystick Axis
Joystick Axis
Joystick Axis
Axis
5th axis (Joysticks)
5th axis (Joysticks)
5th axis (Joysticks)
5th axis (Joysticks)
Joy Num
Joystick 1
Joystick 2
Joystick 3
Joystick 4
Field
DPad Y1
DPad Y2
DPad Y3
DPad Y4
Name
DPad Y1
DPad Y2
DPad Y3
DPad Y4
Gravity
0
0
0
0
Dead
0.2
0.2
0.2
0.2
Sensitivity
1
1
1
1
Invert
Type
Joystick Axis
Joystick Axis
Joystick Axis
Joystick Axis
Axis
7th axis (Joysticks)
7th axis (Joysticks)
7th axis (Joysticks)
7th axis (Joysticks)
Joy Num
Joystick 1
Joystick 2
Joystick 3
Joystick 4