使用android sdk触摸Unity3d拖动对象

bvjxkvbb  于 2023-01-11  发布在  Android
关注(0)|答案(1)|浏览(151)

我正在尝试通过触摸和拖动来移动和对象。我正在我的三星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);
}
}
lhcgjxsq

lhcgjxsq1#

这是我使用的,它可能是一个更好的选择,它是基于相机,你的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);
}
}

相关问题