首页 > 解决方案 > Unity - 使对象在一个轴上面向相同的方向?不工作?

问题描述

好的,我的主摄像头能够使用 Google 的 Magic Window 脚本和 iPhone 陀螺仪打开所有 4 个轴。我还有一个存在于地面上的角色,需要面向与玩家相同的方向,即他们正在看的地方。

据我所知,这是y轴:

在此处输入图像描述 两个对象都不是任何事物的孩子。问题是当我这样做以将角色与相机(玩家)的 y 轴对齐时:

 transform.rotation = new Quaternion(transform.rotation.x, player.transform.rotation.y, transform.rotation.z, transform.rotation.w);

我什么都得不到。我试过其他轴,但 y 应该是左/右,我不明白这里有什么问题。

我需要对 transform.forward 做些什么吗?这样做的正确方法是什么?

标签: c#unity3dgame-physics

解决方案


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

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

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

推荐阅读