leapmotion 正反问题_LeapMotion拉动物体旋转

本文介绍了如何在VR环境中使用LeapMotion传感器,通过计算手部与物体中心向量的变化来实现物体的旋转。当手触碰物体时,获取手的位置并计算两帧间的向量夹角,从而得到旋转角度,使物体跟随手部移动方向转动。代码示例展示了在Unity中如何应用这一机制,实现物体围绕相机轴向旋转。
摘要由CSDN通过智能技术生成

在VR中经常需要实现这样的功能:展示一个物体,当玩家碰触到这个物体时,可以用手来拨动这个物体,把物体前后左右上下都看一下,在程序上就是获取手的位置变化来控制物体的旋转,具体的思路呢就是求出手与物体中心两点之间的向量,然后求出上一帧与下一帧这两个向量的夹角,这样就能得出我们的手相对于物体移动的角度,再让物体转动相应的角度即可。物体的转动一定是要以camera 的轴向旋转的。

public Camera cam;

private Collider colObj;

private Vector3 lastPos;

private bool grab;

public bool relase;

private Transform hand;

void Awake()

{

colObj = GetComponent();

}

void OnTriggerEnter(Collider col)

{

lastPos = col.transform.position;//记录手触碰到物体时的位置

hand = col.transform;

grab = true;

relase = false;

}

void OnTriggerExit(Collider e)

{

grab = false;

relase = true;

}

void Update()

{

if (!grab)

return;

/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值