XRInputSourceArray:forEach() 方法
XRInputSourceArray
方法 forEach()
会对数组中的每个输入源执行指定的回调函数,从索引 0 开始,一直执行到列表末尾。
语法
js
forEach(callback)
forEach(callback, thisArg)
参数
callback
-
一个函数,在
xrInputSourceArray
数组中的每个条目上执行一次。回调函数最多接受三个参数currentValue
-
一个
XRInputSource
对象,它是当前正在处理的xrInputSourceArray
中条目的值。 currentIndex
可选-
一个整数,表示
currentValue
指定的元素在数组中的索引。如果不需要知道索引号,可以省略。 sourceList
可选-
正在处理的
XRInputSourceArray
对象。如果不需要此信息,可以省略。
thisArg
可选-
在执行回调函数时要用于
this
的值。请注意,如果使用 箭头函数表示法 (=>
) 提供回调函数,则可以省略thisArg
,因为所有箭头函数都会词法绑定this
。
返回值
未定义。
示例
此示例代码段获取会话的输入列表,并尝试使用它支持的每种类型的输入设备进行处理。
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 */
}
});
对于列表中的每个输入,回调函数将游戏手柄输入分派到 checkGamepad()
,并将其从输入的 gamepad
属性中获取的 Gamepad
对象作为输入。
对于其他设备,我们寻找玩家主手中 tracked-pointer
设备,并将它们分派到 handleMainHandInput()
方法。
规范
未找到规范
未找到 api.XRInputSourceArray.forEach
的规范数据。
检查此页面是否存在问题 或为缺少的 spec_url
贡献代码到 mdn/browser-compat-data。还要确保规范包含在 w3c/browser-specs.
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。
另请参阅
- 输入和输入源
Array
方法forEach()
XRInputSource