【发布时间】:2014-11-03 00:51:53
【问题描述】:
首先,我要让您知道我是 Unity 和整体编码的新手(我知道一些非常基本的 javascript 编码)。我的问题:每次我触摸屏幕时,如何在某个轴(在我的情况下是 z 轴,所以它像你看着方向盘一样旋转)上旋转 2D 对象(预制件)120 度。现在我有这样的:
function TouchOnScreen ()
{
if (Input.touchCount > 0)
{
var touch = Input.touches[0];
if (touch.position.x < Screen.width/2)
{
transform.rotation = Quaternion.Euler(0,0,120);
Debug.Log("RotateRight");
}
else if (touch.position.x > Screen.width/2)
{
transform.rotation = Quaternion.Euler(0,0,-120);
Debug.Log("RotateLeft");
}
}
}
每当我按下屏幕的某一侧时,此代码都会旋转对象,但不是我想要的方式。我希望它旋转,以便您看到对象从 A 旋转到 B,但不是(像现在这样)在一帧中从 A 到 B。此外,这段代码让我只能向每个方向旋转一次。
我怎样才能让它每当我按下屏幕的某一侧时,它会增加或减少之前旋转的角度,这样我就可以继续旋转。
注意:请使用javascript,如果您知道更简单的代码,请告诉我!
非常感谢您的帮助,在此先感谢!
【问题讨论】:
-
你在这里做的是在变换上设置一个旋转......我建议探索的是而不是设置
transform.rotation,设置一个“目标”并在你的更新函数中编写逻辑来动画朝向该目标的对象transform.rotation -
感谢您的回复!但是你能否给我一个示例脚本,即使我明白你在向我解释什么,我仍然太不熟练,无法将你的解释变成一个脚本:(
标签: android unity3d rotation unityscript unity3d-2dtools