我如何获得一个旋转坐标单位?

问题描述 投票:0回答:1

我想让一个立方体旋转不超过60度,所以它不能旋转得更多我试图用这个

if(gameObject.GetComponent<Transform>().rotation.x >= 60 || gameObject.GetComponent<Transform>().rotation.x <= -60 || gameObject.GetComponent<Transform>().rotation.z >= 60 || gameObject.GetComponent<Transform>().rotation.z <= -60)
    {
        gameObject.GetComponent<Transform>().rotation = new Quaternion(0, 0, 0, 0);
    }

检查旋转。它没有用,所以我打印了x坐标中旋转的方向

它说坐标如下:5.98324、7.39842,-1.983495

而且我只是移动x位置而不是旋转,它改变了它。

那么,如何获得在组件变换中所表示的x旋转?

c# unity3d
1个回答
0
投票

您对旋转的欧拉角感兴趣,而不是旋转的四元数分量。您应该首先引用transform.eulerAngles.x而不是transform.eulerAngles.xtransform.rotation.x而不是transform.eulerAngles.z

顺便说一句,最好是尽可能少地拨打transform.rotation.z,因为这是一项昂贵的操作。您应该调用一次并将结果分配给这样的变量:

GetComponent
© www.soinside.com 2019 - 2024. All rights reserved.