XRInputSourceArray: forEach() 方法
XRInputSourceArray 方法 forEach() 会对数组中的每个输入源执行一次指定的 callback 函数,从索引 0 开始,直到列表末尾。
语法
js
forEach(callback)
forEach(callback, thisArg)
参数
回调-
一个函数,将为
xrInputSourceArray数组中的每个条目执行一次。该 callback 最多接受三个参数:currentValue-
一个
XRInputSource对象,这是当前正在处理的xrInputSourceArray中的项的值。 currentIndex可选-
一个整数值,表示
currentValue元素在数组中的索引。如果你不需要知道索引号,可以省略此参数。 sourceList可选-
正在处理的
XRInputSourceArray对象。如果你不需要此信息,可以省略此参数。
thisArg可选-
执行 callback 时要用于
this的值。请注意,如果你使用 箭头函数表示法(=>)来提供 callback,则可以省略thisArg,因为所有箭头函数都将this绑定到词法作用域。
返回值
Undefined。
示例
此示例代码段获取会话的输入列表,并尝试使用它来处理它支持的每种类型的输入设备。
js
let inputSources = xrSession.inputSources;
inputSources.forEach((input) => {
if (input.gamepad) {
checkGamepad(input.gamepad);
} else if (
input.targetRayMode === "tracked-pointer" &&
input.handedness === player.handedness
) {
/* Handle main hand controller */
handleMainHandInput(input);
} else {
/* Handle other inputs */
}
});
对于列表中的每个输入,callback 将将手柄输入分派给 checkGamepad(),并将输入的 Gamepad 对象(从其 gamepad 属性获取)作为输入。
对于其他设备,我们会查找玩家主手上的 tracked-pointer 设备,并将它们分派给 handleMainHandInput() 方法。
规范
此特性似乎未在任何规范中定义。浏览器兼容性
加载中…
另见
- 输入和输入源
Array方法forEach()XRInputSource