Skip to content

Repository files navigation

Plug Input Pack

Configure the Unity Input System once, then read actions like ordinary game data.

A compact input layer with typed values, frame-state helpers, device tracking and generated action names for Unity projects that do not need another gameplay framework.

Release Unity Input System License

Why Plug Input Pack? · Installation · Quick Start · Documentation


Why Plug Input Pack?

The Unity Input System is flexible, but the same adapter code tends to reappear around it: looking up actions, exposing values, distinguishing a held input from a fresh press, tracking the active device and keeping physics reads consistent.

Plug Input Pack keeps that layer small and reusable. The action asset remains the source of truth; the package turns it into a reader that gameplay code can query without repeating the setup in every controller.

Generated action names
Save the action asset and use generated constants instead of scattering string keys through gameplay code.
Typed reads
Read vectors, buttons and other action values through one compact access pattern.
Frame-state helpers
Separate held, pressed and released states across both Update and FixedUpdate.
Device awareness
Track the active control scheme and centralize cursor or debug behavior when the project needs it.

Installation

Requires Unity 2022.3 or newer. The compatible Input System dependency is declared by the package.

In the Package Manager, choose Add package from git URL and paste:

https://github.com/Natteens/com.natteens.pluginputpack.git

Or add it to Packages/manifest.json:

{
  "dependencies": {
    "com.natteens.pluginputpack": "https://github.com/Natteens/com.natteens.pluginputpack.git"
  }
}

Pin the dependency to a release tag when reproducible installs matter.

Quick Start

Create an Input Action Asset, assign it to a PlugInputReader, then place a PlugInputComponent in the scene. Saving the action asset generates InputNames.cs.

using PlugInputPack;
using UnityEngine;

public sealed class PlayerInputExample : MonoBehaviour
{
    [SerializeField] private PlugInputComponent input;

    private void Update()
    {
        Vector2 movement = input[InputNames.Move];

        if (input[InputNames.Jump].JustPressed)
        {
            Debug.Log("Jump");
        }
    }
}

The component owns input lifecycle. Gameplay code only reads the state it needs.

Documentation

The complete workflow lives in Documentation, including:

  • action asset and reader setup;
  • Update versus FixedUpdate behavior;
  • callbacks and active-device tracking;
  • cursor handling, generated names and troubleshooting.

See the changelog for release history.

License

MIT. See LICENSE.

About

A lightweight Unity package that simplifies Input System setup and removes repetitive input code.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages