【发布时间】:2012-03-08 08:05:19
【问题描述】:
这是我正在尝试做的简化代码:
var angle = 1.57;
if ( this.transform.rotation.y > angle ){
this.transform.rotation.y--;
} else if ( this.transform.rotation.y < angle ){
this.transform.rotation.y++;
}
我习惯于在 AS3 中编写代码,如果我在 Flash 中编写代码,它可以完美运行,但在 Unity3D 中却不行,而且我很难弄清楚为什么,或者我怎么能得到它效果。
有人可以帮我吗?谢谢!
编辑:
我的对象是一辆刚体汽车,有 2 个胶囊对撞机在“凹凸不平”的地板上行驶,在某些时候他只是失去了方向精度,我认为这是因为它的分层旋转系统。
(感谢 kay 提供的 transform.eulerAngles 提示)
【问题讨论】:
-
您知道 Unity 有自己的专用 Stack Exchange website 吗?那里可能有更多专门的答案。
-
从技术上讲,answers.unity3d.com 不是 Stack Exchange 成员。它由 Qato 提供,并且是开源克隆。但是,是的,那里有一个专门的 Unity 社区支持网站。
-
我同意这是一个非常好的和非常有价值的资源,我不时在那里发帖,但我不喜欢他们的声誉系统:一个接受的答案值 0 分。也许有点幼稚,但每天花 15 分钟回答问题有点像我正在开发的游戏 :-)
-
Unity 不叫 Unity3D。您的第二个 if 语句是不必要的,因为您正在处理浮点数。您的代码导致非规范化四元数,不能作为旋转值接受。
标签: rotation transform unity3d euler-angles