繁体   English   中英

Unity游戏用手指移动拖动对象

[英]Unity game Drag Object with finger movement

我不熟悉Unity并开发移动2D游戏,现在当我在屏幕中心之前或之后触摸屏幕时,便能够使对象左右移动。 但是我想在手指仍触摸屏幕并移动的同时触摸该对象并将其沿x轴拖动,因此我希望该对象位于手指的x位置,任何人都可以帮助我该怎么做正确:这是在触摸屏幕中心之前或之后触摸对象的方式的代码:

public class paddle : MonoBehaviour {

    public Rigidbody2D rb;
    public float speed;
    public float maxX;
    bool currentisAndroid=false;
    // Use this for initialization
    void Start () {
        rb = GetComponent<Rigidbody2D> ();
        #if UNITY_ANDROID
        currentisAndroid=true;
        #else
        currentisAndroid=false;
        #endif
    }

    // Update is called once per frame
    void Update () {
        if (currentisAndroid == true) {
            if (Input.GetTouch (0).position.x < Screen.width/2 && Input.GetTouch (0).phase == TouchPhase.Stationary)
                moveLeft ();
            else if (Input.GetTouch (0).position.x > Screen.width/2 && Input.GetTouch (0).phase == TouchPhase.Stationary)
                moveRight ();
            else
                stop ();

        } else {
            float x = Input.GetAxis ("Horizontal");
            //if (Input.GetTouch (0).position.x == rb.position.x && Input.GetTouch (0).phase == TouchPhase.Moved)
            if (x == 0)
                stop ();
            if (x < 0)
                moveLeft ();
            if (x > 0)
                moveRight ();

            Vector2 pos = transform.position;
            pos.x=Mathf.Clamp (pos.x,-maxX,maxX);
            transform.position = pos;
        }


    }
    void moveLeft()
    {
        rb.velocity = new Vector2 (-speed, 0);
    }
    void moveRight()
    {
        rb.velocity = new Vector2 (speed, 0);
    }
    void stop()
    {
        rb.velocity = new Vector2 (0, 0);
    }
    public float getposition()
    {
        return rb.position.y;
    }
}

如果我正确理解:
1-用手指将手指位置垂直垂直投射到场景中。
2-选择命中的对象。
3-将摄影机映射到世界坐标,并使用地图或游戏对象\\对象根据射线的命中点移动该对象。

  • Physics.Raycast();
  • RaycastHit.collider();
  • Camera.main.ScreenToWorldPoint(Input.GetTouch(<0或1或全部>)。position);

如果要在地图上移动对象,则可以跟踪触摸,当其靠近角落时,可以沿该方向(水平-垂直)移动相机。

最简单的方法:

添加组件DragRigidbody脚本,您将能够通过鼠标或触摸屏触摸来拖动对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM