【发布时间】:2019-11-12 02:11:33
【问题描述】:
我有 GameObject 对象和 Camera.main 的世界坐标,我想计算相对于 Camera.main 的位置和旋转。 定位很简单:
object.transform.position - Camera.main.transform.position
如何计算给定物体相对于相机的四元数?
我可以设置 object.transform.parent = Camera.main.transform 并读取 localRotation,但是有没有更优雅的解决方案。
【问题讨论】:
-
Transform.LookAt()对象,然后读回旋转。 -
@3Dave 这没有回答问题。
Transform.LookAt没有给出从一个旋转到另一个旋转的相对旋转。它提供了一个旋转,将一个变换指向另一个变换。变换的当前旋转根本不会影响Transform.LookAt所做的更改。 -
@Ruzihm 复制
Camera.main.transform,从该对象和.LookAt对象进行新的转换。减去两个欧拉角。从中获得季铵盐是微不足道的。这里的真正问题(来自我的观点)是“相对旋转”并没有真正明确定义,但这是一种(在我看来是有效的)解释。 -
@3Dave 这通常会给出与设置
object.transform.parent = Camera.main.transform;和读取object.transform.localRotation截然不同的结果。