在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;
/