VisionOS开发:如何检测执行手势的手的左右手属性?
在VisionOS中检测手势对应的左右手属性
可以检测执行手势的手的左右手属性。在TapGesture的onEnded回调参数value中,你可以通过input属性获取触发手势的输入源,进而判断是左手还是右手。
具体来说,value.input是PointerInput类型,其hand属性对应触发手势的手,而Hand类型的handedness属性(Handedness枚举)会明确标识是左手(.left)还是右手(.right)。
修改你的示例代码如下:
TapGesture(count: 2) .targetedToAnyEntity() .onEnded { value in guard let hand = value.input.hand else { return } switch hand.handedness { case .left: // 执行左手触发后的操作 print("左手触发双击手势") case .right: // 执行右手触发后的操作 print("右手触发双击手势") @unknown default: // 处理未来可能新增的枚举值 break } }
需要注意的是,要先判断value.input.hand是否为nil,因为某些情况下手势可能不是由手触发的(比如外接设备)。
内容的提问来源于stack exchange,提问作者Vi Tiet
相关产品推荐
相关产品推荐

