通过使用android sdk触摸Unity3d来拖动对象

时间:2013-12-28 21:37:06

标签: android ios touch unity3d drag

我试图通过触摸和拖动来移动和反对。我在三星Galaxy SIII上测试它。我使用了以下代码。出于某种原因,它比我的手指移动得更快。它总是在我的手指下面。怎么了? (注意:我没有完成“移动物体,只要你触摸它”部分,所以现在它移动到我触摸的地方)。

#pragma strict

var speed : float = 1;

function Start () {

}

function Update () { 
    if (Input.touchCount > 0 && Input.GetTouch(0).phase ==     TouchPhase.Moved) {

    // Get movement of the finger since last frame
    var touchDeltaPosition:Vector2 = Input.GetTouch(0).deltaPosition;


    // Move object across XY plane
    transform.position = Vector2.Lerp(transform.position,
                                            touchDeltaPosition, 
                                            Time.deltaTime*speed);
}
}

1 个答案:

答案 0 :(得分:0)

这是我使用的,它可能是一个更好的选择,它是基于相机,你的Vector2.Lerp无法正常工作的原因我认为是因为你的时间变量你可以参考这个Lerp并调整你的't'变量直到它对你有好处,或者你可以尝试这个,这就是我使用的,我也从x减去并添加到y所以我的手指不在图形上,最好好运:))

#pragma strict

var speed : float = 1;
var distance : float = 5;
function Start () {

}

function Update () { 
    if (Input.touchCount > 0 && Input.GetTouch(0).phase ==     TouchPhase.Moved) {

    // Get movement of the finger since last frame
    var touchDeltaPosition:Vector2 = Input.GetTouch(0).deltaPosition;

    var touchmove : Vector3 = Vector3(touchDeltaPosition.x, touchDeltaPosition.y, distance);


    // Move object across XY plane
    transform.position = Camera.main.ScreenToWorldPoint(touchmove);
}
}