The XRInputSourceArray
interface's entries()
method returns a JavaScript iterator
which can then be used to iterate over the key/value pairs in the input source array. Each item in the array is an XRInputSource
object.
Most frequently, you will use this in tandem with statements such as for...of
.
An iterator
which can be used to walk through the list of XRInputSource
objects included in the input source array.
This example snippet gets the list of inputs for a session and tries to handle each type of input device it supports using.
let sources = xrSession.inputSources;
for (const input of sources.entries()) {
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, gamepad inputs are dispatched 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.