c# - 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 做些什么吗?这样做的正确方法是什么?
解决方案
这可能不是最好的解决方案,但您可以使用transform.forward
,如您所提到的,删除 Y 组件并将其转换为四元数。
Vector3 rotation = camera.transform.forward;
rotation.y = 0f;
player.transform.rotation = Quaternion.LookRotation(rotation);
推荐阅读
- python - ValueError:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()。Keras 属性错误
- python - Django:如何从不同的模型中获取最新的对象?
- google-chrome-extension - Chrome 扩展:我没有指定“主机权限”作为前提,但我需要解释原因
- reactjs - Docker Swarm:React 前端无法连接到 Kong API 网关
- python - 当我将输出设为否时,它即将到来使用伞
- python - 使用 asyncio 从 tkinter 切换到 PyQt5
- php - Woocommerce Hook 使用 ACF 字段覆盖
- javascript - TypeError:无法设置未定义的属性“lastHash”
- java - 没有页眉页脚的 Jhipster 页面
- javascript - 错误未定义不是对象(评估'source.sourceLinks.push')D3.JS