InputService
Le service d'entrée global — fournit l'accès à toutes les instances PlayerInput et aux périphériques bruts.
Récupéré via useInput() ou engine.inject('input').
class InputServiceJoueurs
player
player(index: number): PlayerInputRetourne le PlayerInput pour le slot de joueur donné (base 0).
| Paramètre | Type | Description |
|---|---|---|
index | number | Index du slot joueur base 0 (0–3). |
Lève RangeError si index est hors bornes.
players
get players(): readonly PlayerInput[]Toutes les instances PlayerInput actives. La longueur correspond au players passé à InputPlugin.
action
action<T extends ActionType>(ref: ActionRef<T>): ActionState<T>Raccourci pour input.player(0).action(ref).
Périphériques
keyboard
get keyboard(): KeyboardDeviceL'instance du périphérique clavier. Voir Périphériques — KeyboardDevice.
mouse
get mouse(): MouseDeviceL'instance du périphérique souris. Voir Périphériques — MouseDevice.
gamepad
get gamepad(): GamepadDeviceL'instance du périphérique manette. Voir Périphériques — GamepadDevice.
touch
get touch(): TouchDeviceL'instance du périphérique tactile. Voir Périphériques — TouchDevice.
gyro
get gyro(): GyroDeviceL'instance du périphérique gyroscope. Voir Périphériques — GyroDevice.
virtualControls
get virtualControls(): VirtualControlsOverlay | undefinedL'instance de l'overlay des contrôles virtuels. Présent uniquement si configuré via InputPlugin({ touch: { virtualJoysticks, virtualButtons } }).
Enregistrement
recorder
get recorder(): InputRecorderL'instance InputRecorder. Utilisez-la pour démarrer/arrêter l'enregistrement et exporter les sessions. Voir Enregistrement & Lecture.
playback
get playback(): InputPlaybackL'instance InputPlayback. Utilisez-la pour charger, lire, positionner et arrêter les sessions enregistrées.
Permission de mouvement
requestMotionPermission
requestMotionPermission(): Promise<'granted' | 'denied' | 'unavailable'>Demande la permission de mouvement iOS 13+ pour le gyroscope. Doit être appelé depuis un gestionnaire de geste utilisateur (ex : un clic de bouton). Appeler depuis onUpdate() échouera silencieusement sur iOS.
Sur les plateformes ne nécessitant pas de permission explicite, résout immédiatement avec 'granted'. Si DeviceOrientationEvent n'est pas disponible, résout avec 'unavailable'.
button.onclick = async () => {
const result = await useInput().requestMotionPermission()
if (result === 'granted') enableGyroAim()
}Profils d'accessibilité
getAccessibilityProfiles
getAccessibilityProfiles(): string[]Retourne les noms de tous les profils d'accessibilité enregistrés. Les profils sont enregistrés via InputPlugin({ accessibilityProfiles: { ... } }). Activez un profil pour un joueur via player.activateAccessibilityProfile(name).
const profiles = useInput().getAccessibilityProfiles()
// ['one-handed-left', 'one-handed-right', 'high-contrast']Debug
debug
get debug(): InputDebugAPI | nullL'instance de l'API debug. Retourne null en production (import.meta.env.PROD) ou avant que le plugin ne termine son initialisation. Utilisez-la pour construire des intégrations devtools ou des overlays de debug.
const debug = useInput().debug
if (debug) {
debug.onFrame(snap => console.log(snap.players[0].actions))
}