Unity - 让物体在一个轴上朝向相同的方向?不工作?
Unity - make object face the same direction on one axis? Not working?
好的,我的主摄像头能够使用 Google 的魔法 Window 脚本和 iPhone 陀螺仪打开所有 4 个轴。我还有一个存在于地面上的角色,需要面向与玩家相同的方向,即他们正在看的地方。
据我所见,这是 y 轴:
这两个对象都不是任何对象的子对象。问题是当我这样做是为了将角色与相机(玩家)的 y 轴对齐时:
transform.rotation = new Quaternion(transform.rotation.x, player.transform.rotation.y, transform.rotation.z, transform.rotation.w);
我一无所获。我试过其他轴,但 y 应该是 left/right,我不明白这里有什么问题。
我需要用 transform.forward 做些什么吗?正确的做法是什么?
这可能不是最佳解决方案,但您可以使用 transform.forward
,正如您提到的那样,删除 Y 分量并将其转换为四元数。
Vector3 rotation = camera.transform.forward;
rotation.y = 0f;
player.transform.rotation = Quaternion.LookRotation(rotation);
好的,我的主摄像头能够使用 Google 的魔法 Window 脚本和 iPhone 陀螺仪打开所有 4 个轴。我还有一个存在于地面上的角色,需要面向与玩家相同的方向,即他们正在看的地方。
据我所见,这是 y 轴:
transform.rotation = new Quaternion(transform.rotation.x, player.transform.rotation.y, transform.rotation.z, transform.rotation.w);
我一无所获。我试过其他轴,但 y 应该是 left/right,我不明白这里有什么问题。
我需要用 transform.forward 做些什么吗?正确的做法是什么?
这可能不是最佳解决方案,但您可以使用 transform.forward
,正如您提到的那样,删除 Y 分量并将其转换为四元数。
Vector3 rotation = camera.transform.forward;
rotation.y = 0f;
player.transform.rotation = Quaternion.LookRotation(rotation);