Core logic for handling input from a variety of devices that can include keyboard, mouse, game pads, and more. Helps to facilitate triggering actions from game or similar input.
$ dotnet add package OSK.InputsInput management across multiple game engines can vary depending on how the editors are setup to handle the mappings and related core functions that drives input actions. This library is mostly meant to be used as the intermediary between applications and the engines that read the inputs - i.e. Unity3D, Godot, or others. As of now, the intent is not to build a completely new input reading system, it's to create a focal point to managing default and custom input schemes, multiple input templates (or definitions), and allowing a way to better present these data structures to users utilizing the application.
The library contains logic to support dependency injection in a standard .NET application but also contains a factory method to support potential configuration via a game editor.
The ultimate goal is to create a single source for managing inputs and their input actions and getting this information to be displayed and managed by end users that can be easily shared across C# style engines. This should hopefully make development easier and faster as the shared logic will be consistent even if the way engines interpret inputs does not.
For further information about the library, usage, etc., please visit the Docs Page (or check the /docs folder).
Any and all contributions are appreciated! Please be sure to follow the branch naming convention OSK-{issue number}-{deliminated}-{branch}-{name} as current workflows rely on it for automatic issue closure. Please submit issues for discussion and tracking using the github issue tracker.