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);