unity3d 获取Unity中另一个对象的旋转值

8gsdolmq  于 2022-11-24  发布在  其他
关注(0)|答案(1)|浏览(169)

我有一个摄像机,它附在太空舱上,并独立于它旋转。
但是我需要胶囊跟随相机沿着Y轴旋转。如何获得Y轴旋转值 摄像头的位置?尝试通过transform.rotation.y。但它给出了一个错误。

plicqrtu

plicqrtu1#

Transform.rotation返回一个Quaternion(另请参见Wikipedia - Quaternion)-它具有不是3个而是4个组件xyzw
=〉除非你确切地知道自己在做什么--几乎从来都不是这样--否则你永远不想直接接触它的任何组成部分。
不幸的是,Transform.eulerAngles对于您的用例来说并不真正可靠。
因此,我会转而依赖Vector3

// take camera's forward vector
private forward = yourCamera.transform.forward;
// erase the Y axis => vector is now only on the XZ plane rotating around Y
forward.y = 0;

// rotate the capsule so its forward vector aligns with "forward"
yourCapsule.transform.rotation = Quaternion.LookRotation(forward);
// could also do
//yourCapsule.transform.forward = forward;

另请参见Quaternion.LookRotation

相关问题