我正在建模一个加速设备。为了这个目的,我想加速对象的方向,它是指向。我的想法是有一个向量的默认方向,然后我旋转这个向量根据旋转的变换。因此,我尝试使用以下代码:
Vector3 defaultDirection = (1f, 0f, 0f);
Vector3 rotation = transform.rotation.eulerAngles;
Debug.Log("x: " + rotation.x);
Debug.Log("y: " + rotation.y);
Debug.Log("z: " + rotation.z);
问题是我第一次尝试执行它时,输出如下所示:
x:0,3876027
y:0,004236011
z:0,38655568
对象,以及所有的父对象,都有一个0, 0, 0
的旋转。我仔细检查了一下。我做错了什么?或者这只是由强制转换引起的不准确?
**EDIT:**为了澄清这一点,我的问题不是我不能旋转默认向量到旋转向量。我的问题是我得到了错误的旋转向量值。它应该是0,0,0,但输出显示我其他值。
3条答案
按热度按时间t30tvxxf1#
Unity提供了很棒的文档和API,可能也会有所帮助:
如果只是存储值,请使用:第一个月
上面,在@TEEBQNE的评论中,你提到你想要"一个长度为1的向量指向你的对象的前面",你可以使用
gameobject.transform.forward
来得到这样的向量。最好的!
atmip9wb2#
这里尝试:)
注=“obj”是一个转换。
kognpnkq3#
这将获取对象的实际世界旋转:
这将打印它:
所以,你的代码只是打印实际对象的世界旋转。