如何将对象的X旋转设置为与VR控制器的X旋转相同

时间:2019-08-23 15:04:51

标签: c# unity3d virtual-reality steamvr

我有一个对象,其x旋转与vr的控制器相同。

transform.rotation = Quaternion.Euler(controller.transform.rotation.eulerAngles.x, 0, 0);

但是我需要将其旋转90度,以使对象垂直不水平。

transform.rotation = Quaternion.Euler(controller.transform.rotation.eulerAngles.x + 90, 0, 0);

但这不能正常工作,因为您只能沿一个方向旋转对象。

如果旋转控制器向右->对象旋转向右,并且如果旋转控制器向左->对象旋转向右。 如果要向左旋转对象,则必须上下颠倒旋转控制器。

我还尝试将对象设置为控制器的子对象,但在播放时消失了

我该如何解决?

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以将旋转角度设置为等于控制器的右向量。

this.transform.rotation =  Quaternion.LookRotation(controller.transform.right, Vector3.up);