我试图通过触摸和拖动来移动和反对。我在三星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);
}
}
答案 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);
}
}