The XRInputSourceArray
method forEach()
executes the specified callback once for each input source in the array, starting at index 0 and progressing until the end of the list.
forEach(callback)
forEach(callback, thisArg)
This example snippet gets the list of inputs for a session and tries to handle each type of input device it supports using.
let inputSources = xrSession.inputSources;
inputSources.forEach((input) => {
if (input.gamepad) {
checkGamepad(input.gamepad);
} else if (
input.targetRayMode === "tracked-pointer" &&
input.handedness === player.handedness
) {
handleMainHandInput(input);
} else {
}
});
For each input in the list, the callback dispatches gamepad inputs to a checkGamepad()
with the input's Gamepad
object, taken from its gamepad
property, as an input
For other devices, we look for tracked-pointer
devices in the player's main hand, dispatching those to a handleMainHandInput()
method.