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);
        }

该怎么办?

谢谢亲切问候

Unity平滑触摸x坐标

您不应该在此处使用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

它应该能很好地工作。