You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 15:32:34