Unity平滑触摸x坐标
本文关键字:坐标 触摸 平滑 Unity | 更新日期: 2023-09-27 18:28:14
我有一个2D手机游戏,我需要触摸和拖动对象。这是一个脚本(使用此脚本,对象不会平滑移动)。我想把物体移动到一根手指所在的位置。
public float speed;
void Update ()
{
if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Moved)
{
Vector2 touchDeltaPosition = Input.GetTouch(0).deltaPosition;
transform.Translate(touchDeltaPosition.x * speed, 0, 0);
}
该怎么办?
谢谢亲切问候
您不应该在此处使用speed
,因为它会立即为您提供准确的位置。因此,尝试像transform.Translate(touchDeltaPosition.x, 0, 0);
一样删除speed
更新:
您也可以使用Vector3.MoveTowards
。试试
void Update ()
{
if (Input.touchCount > 0 && Input.GetTouch (0).phase == TouchPhase.Moved) { //pomicanje trake po x-osi na touch screenu
// pokret prsta od zadnjeg frejma
Vector3 touchDeltaPosition = Input.GetTouch (0).deltaPosition;
// Za x-os
transform.position = Vector3.MoveTowards (transform.position, new Vector3 (Mathf.Clamp (touchDeltaPosition.x, -2.5f, 2.5f), transform.position.y, transform.position.z), 1);
}
}
代替transform.Translate
它应该能很好地工作。