Skip to content

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').

ts
class InputService

Joueurs ​

player ​

ts
player(index: number): PlayerInput

Retourne le PlayerInput pour le slot de joueur donné (base 0).

ParamètreTypeDescription
indexnumberIndex du slot joueur base 0 (0–3).

Lève RangeError si index est hors bornes.

players ​

ts
get players(): readonly PlayerInput[]

Toutes les instances PlayerInput actives. La longueur correspond au players passé à InputPlugin.

action ​

ts
action<T extends ActionType>(ref: ActionRef<T>): ActionState<T>

Raccourci pour input.player(0).action(ref).

Périphériques ​

keyboard ​

ts
get keyboard(): KeyboardDevice

L'instance du périphérique clavier. Voir Périphériques — KeyboardDevice.

mouse ​

ts
get mouse(): MouseDevice

L'instance du périphérique souris. Voir Périphériques — MouseDevice.

gamepad ​

ts
get gamepad(): GamepadDevice

L'instance du périphérique manette. Voir Périphériques — GamepadDevice.

touch ​

ts
get touch(): TouchDevice

L'instance du périphérique tactile. Voir Périphériques — TouchDevice.

gyro ​

ts
get gyro(): GyroDevice

L'instance du périphérique gyroscope. Voir Périphériques — GyroDevice.

virtualControls ​

ts
get virtualControls(): VirtualControlsOverlay | undefined

L'instance de l'overlay des contrôles virtuels. Présent uniquement si configuré via InputPlugin({ touch: { virtualJoysticks, virtualButtons } }).

Enregistrement ​

recorder ​

ts
get recorder(): InputRecorder

L'instance InputRecorder. Utilisez-la pour démarrer/arrêter l'enregistrement et exporter les sessions. Voir Enregistrement & Lecture.

playback ​

ts
get playback(): InputPlayback

L'instance InputPlayback. Utilisez-la pour charger, lire, positionner et arrêter les sessions enregistrées.

Permission de mouvement ​

requestMotionPermission ​

ts
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'.

ts
button.onclick = async () => {
  const result = await useInput().requestMotionPermission()
  if (result === 'granted') enableGyroAim()
}

Profils d'accessibilité ​

getAccessibilityProfiles ​

ts
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).

ts
const profiles = useInput().getAccessibilityProfiles()
// ['one-handed-left', 'one-handed-right', 'high-contrast']

Debug ​

debug ​

ts
get debug(): InputDebugAPI | null

L'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.

ts
const debug = useInput().debug
if (debug) {
  debug.onFrame(snap => console.log(snap.players[0].actions))
}