我想要在识别出手势之后在手的右侧显示一个view
junpingfu opened this issue · comments
我想要在识别出手势之后在手的右侧显示一个view,同时这个view可以跟随手进行移动。
`var pos = latestHandTracking.left?.position(relativeTo: rootEntity) ?? SIMD3(-0.5,1.1,-0.2)
pos = pos + [0.1, 0.18, -0.25]
menu.setPosition(pos, relativeTo: rootEntity)`
我通过这个方法将我的view设置在 [0.1, 0.18, -0.25] 偏移这个的位置上。 在正面时是正常的,但是当转动头部,移动手以后,view的位置会出现很大的差异,正面和侧面时的差异相差很大。知道是什么原因吗。还是说我这样直接做偏移的方法是不对的
因为你只考虑了左手的位置移动,没有考虑旋转。
一般比较简单的做法是,将 view 加入 latestHandTracking.left
下面,成为它的子级 Enity,就会自动跟随父级移动和旋转。
第二种,将 view 添加到 rootEnity
下面,然后利用 Entity 的矩阵转换函数:
var matrix = latestHandTracking.left?.matrix(relativeTo: rootEntity)
matrix = matrix * your_offset_matrix_to_left_hand
menu.setTransformMatrix(matrix, relativeTo: nil)
第三种,还可以单纯利用 matrix 手动计算位置。
好的,我试试直接add到left上吧, 自己计算位置这个不会算😮💨
请问您有什么论坛,或者交流群吗,关于vision pro的