首先,我会让你知道我是Unity的新手并且整体编码(我知道一些非常基本的javascript编码)。我的问题:我每次触摸屏幕时,如何将某个轴上的2D物体(预制件)旋转120度(在我的情况下是z轴,所以它像你正在看方向盘一样旋转)。现在我有这样的话:
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,如果您知道更简单的代码,请告诉我们!
非常感谢帮助,提前谢谢!
答案 0 :(得分:3)
而不是
transform.rotation = Quaternion.Euler(0,0,-120);
您使用:
var lSpeed = 10.0f; // Set this to a value you like
transform.rotation = Quaterion.Lerp ( transform.rotation, Quaternion.Euler(0,0,-120), Time.deltaTime*lSpeed);