Unity2D - 如何在触摸/单击/按下时旋转2D对象

时间:2014-09-09 14:34:25

标签: android unity3d rotation unityscript unity3d-2dtools

首先,我会让你知道我是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,如果您知道更简单的代码,请告诉我们!

非常感谢帮助,提前谢谢!

1 个答案:

答案 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);