Panda3D.Framework.Input
0.1.0-preview.13
dotnet add package Panda3D.Framework.Input --version 0.1.0-preview.13
NuGet\Install-Package Panda3D.Framework.Input -Version 0.1.0-preview.13
<PackageReference Include="Panda3D.Framework.Input" Version="0.1.0-preview.13" />
<PackageVersion Include="Panda3D.Framework.Input" Version="0.1.0-preview.13" />
<PackageReference Include="Panda3D.Framework.Input" />
paket add Panda3D.Framework.Input --version 0.1.0-preview.13
#r "nuget: Panda3D.Framework.Input, 0.1.0-preview.13"
#:package Panda3D.Framework.Input@0.1.0-preview.13
#addin nuget:?package=Panda3D.Framework.Input&version=0.1.0-preview.13&prerelease
#tool nuget:?package=Panda3D.Framework.Input&version=0.1.0-preview.13&prerelease
Panda3D.Framework.Input
Builds Panda's data graph and per-window input chain, registers the dataLoop task that traverses and evaluates it each frame, and exposes input through three layers: raw device polling at the bottom, a serializable action / binding / context layer in the middle, and both polling and typed-event (IObservable<T>) access on top. Bindings and polling are physical (raw scan position), so WASD is correct on any keyboard layout.
Provides
AddInput()— devices, the action runtime, and thedataLoopframe task (capture edges → traverse → evaluate actions).IInput— per-view raw polling:IsDown/Pressed/Released(ButtonId),MousePosition,IsOverUi,CaptureNext(). Per-view — resolve it from the view scope viaview.Input()(orview.Services), not the root provider.Keys/Mouse/Gamepad—ButtonIdvocabularies (Keys.Space,Keys.Ascii('w'),Mouse.Left,Gamepad.A, …);ButtonIdpersists by stableName.- Actions:
ButtonAction(bool),AxisAction(float),VectorAction(LVector2f) — each with polling state andPressed/Released/Changedobservables;Bindingsis statically constrained to compatible binding types. - Bindings:
ButtonBinding,AxisBinding,CompositeAxisBinding,CompositeVectorBinding,StickBinding(deadzone/invert/scale live on the analog binding). IInputContext— a named, prioritized, enable/disable-able action set; create withserviceProvider.CreateContext(name, priority)(e.g.view.Services.CreateContext(...)).IDevices— gamepad/joystick enumeration plusConnected/Disconnectedhotplug observables.IButtonLabels— layout-aware display labels for HUD / rebind UI.
Usage
var ctx = view.Services.CreateContext("gameplay");
var move = ctx.Add(new VectorAction("move"));
move.Bindings.Add(new CompositeVectorBinding(Keys.Ascii('w'), Keys.Ascii('s'), Keys.Ascii('a'), Keys.Ascii('d')));
move.Bindings.Add(new StickBinding(InputDeviceAxis.LeftX, InputDeviceAxis.LeftY) { Deadzone = 0.15f });
LVector2f dir = move.Value; // poll, or move.Changed.Subscribe(v => …)
var jump = ctx.Add(new ButtonAction("jump"));
jump.Bindings.Add(new ButtonBinding(Keys.Space));
jump.Bindings.Add(new ButtonBinding(Gamepad.A)); // multiple bindings, OR'd
jump.Pressed.Subscribe(_ => DoJump()); // observable… or poll: if (jump.WasPressed) …
// raw-polling escape hatch (per view):
if (view.Input().Pressed(Keys.Escape)) Quit();
Part of Panda3D.Framework; the Panda3D.Framework umbrella package pulls in every library plus the bindings and native runtimes.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.2)
- Microsoft.Extensions.Hosting.Abstractions (>= 8.0.1)
- Panda3D.Async (>= 1.11.0-preview.6)
- Panda3D.Framework.Abstractions (>= 0.1.0-preview.13)
- Panda3D.Framework.Events (>= 0.1.0-preview.13)
- Panda3D.Framework.Rendering (>= 0.1.0-preview.13)
- Panda3D.Framework.Scheduling (>= 0.1.0-preview.13)
- Panda3D.Interop (>= 1.11.0-preview.4122)
- System.Reactive (>= 6.0.1)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Panda3D.Framework.Input:
| Package | Downloads |
|---|---|
|
Panda3D.Framework
The complete Panda3D.Framework: every feature library, the C# bindings, and the native runtimes. Reference this one package to build and run a game. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0-preview.13 | 64 | 8/3/2026 |
| 0.1.0-preview.11 | 67 | 8/1/2026 |
| 0.1.0-preview.5 | 56 | 7/20/2026 |