Unity Input System Skill
New Input System configuration and implementation for Unity.
Overview
This skill provides capabilities for implementing Unity's New Input System, including action maps, device support, and cross-platform input handling.
Capabilities
Action Configuration
- •Create Input Action Assets
- •Define action maps and actions
- •Configure bindings and interactions
- •Set up action types (value, button, passthrough)
Device Support
- •Configure gamepad support
- •Implement keyboard/mouse handling
- •Set up touch controls
- •Handle XR controllers
Control Schemes
- •Define control schemes
- •Implement scheme switching
- •Support local multiplayer
- •Configure device requirements
Runtime Handling
- •Generate C# input classes
- •Handle input events
- •Implement rebinding UI
- •Manage device changes
Prerequisites
- •Unity 2021.3+
- •Input System package installed
Usage Patterns
Input Actions Asset
csharp
// Generated PlayerInput class usage
public class PlayerController : MonoBehaviour
{
private PlayerInputActions inputActions;
void Awake()
{
inputActions = new PlayerInputActions();
}
void OnEnable()
{
inputActions.Gameplay.Enable();
inputActions.Gameplay.Jump.performed += OnJump;
inputActions.Gameplay.Move.performed += OnMove;
}
void OnDisable()
{
inputActions.Gameplay.Disable();
}
void OnJump(InputAction.CallbackContext ctx)
{
// Handle jump
}
void OnMove(InputAction.CallbackContext ctx)
{
Vector2 movement = ctx.ReadValue<Vector2>();
}
}
Rebinding
csharp
public void StartRebinding(InputAction action)
{
action.PerformInteractiveRebinding()
.WithControlsExcluding("Mouse")
.OnComplete(operation => {
operation.Dispose();
SaveBindings();
})
.Start();
}
Best Practices
- •Use Input Action Assets over direct polling
- •Implement rebinding for accessibility
- •Test all supported devices
- •Handle device disconnection gracefully
- •Save custom bindings to PlayerPrefs