C# 统一-使对象在一个轴上朝向同一方向?不工作?

C# 统一-使对象在一个轴上朝向同一方向?不工作?,c#,unity3d,game-physics,C#,Unity3d,Game Physics,好的,我的主摄像头能够使用谷歌的魔窗脚本和iPhone陀螺仪打开所有4个轴。我也有一个角色存在于地面上,需要面对与球员相同的方向,这意味着他们在看什么 我可以看到这是y轴: 两个物体都不是任何事物的后代。问题是,当我这样做是为了将角色与播放器相机的y轴对齐时: transform.rotation = new Quaternion(transform.rotation.x, player.transform.rotation.y, transform.rotation.z, transfor

好的,我的主摄像头能够使用谷歌的魔窗脚本和iPhone陀螺仪打开所有4个轴。我也有一个角色存在于地面上,需要面对与球员相同的方向,这意味着他们在看什么

我可以看到这是y轴:

两个物体都不是任何事物的后代。问题是,当我这样做是为了将角色与播放器相机的y轴对齐时:

 transform.rotation = new Quaternion(transform.rotation.x, player.transform.rotation.y, transform.rotation.z, transform.rotation.w);
我什么也得不到。我试过其他轴,但y应该是左/右的,我不明白这里出了什么问题


是否需要对transform.forward执行某些操作?正确的方法是什么?

这可能不是最好的解决方案,但您可以使用transform.forward,如您所述,删除Y分量并将其转换为四元数

Vector3 rotation = camera.transform.forward;
rotation.y = 0f;

player.transform.rotation = Quaternion.LookRotation(rotation);