繁体   English   中英

如何在Unity3D中用手指触摸移动

[英]How to touch to move with finger in Unity3D

我想用触摸设备移动我的游戏对象,就像玩家可以触摸屏幕上的任意位置并移动手指一样,游戏对象也将随之移动,而不移动触摸位置。

到目前为止,这是我的脚本

void Update () {

    if (Input.touchCount > 0)
    {
        Touch _touch = Input.GetTouch(0); // screen has been touched, store the touch 

        if( _touch.phase == TouchPhase.Moved) // finger moved 
        {
            //offset = Camera.main.ScreenToWorldPoint(new Vector3(_touch.position.x, _touch.position.y, theplayer.transform.position.z)) - theplayer.transform.position; 

            touchPos = Camera.main.ScreenToWorldPoint(new Vector3(_touch.position.x, _touch.position.y, theplayer.transform.position.z));

            theplayer.transform.position = Vector2.Lerp(theplayer.transform.position, touchPos, Time.deltaTime*5f);

        }
        else if(_touch.phase == TouchPhase.Ended){
            touchPos = Vector3.zero;
            offset = Vector3.zero;
        }

    }

} // end

该脚本几乎可以正常工作,但是问题是当我触摸屏幕时,游戏对象在手指下方移动,因此我看不到游戏对象。 我不希望这样,我想触摸屏幕上的任何位置并用手指移动而不是移动到手指位置。

谢谢。

我自己已经解决了问题,这里是解决方案代码。

// Update is called once per frame
    void Update () {

        if (Input.touchCount > 0)
        {
             _touch = Input.GetTouch(0); // screen has been touched, store the touch 

            if(_touch.phase == TouchPhase.Began){
                isDragging = true;

                offset = Camera.main.ScreenToWorldPoint(new Vector2(_touch.position.x, _touch.position.y)) - theplayer.transform.position;

            }
            else if(_touch.phase == TouchPhase.Ended){
                offset = Vector2.zero;
                isDragging = false;
            }

        }

        if(isDragging){
            Vector2 _dir = Camera.main.ScreenToWorldPoint(new Vector2(_touch.position.x, _touch.position.y));
            _dir = _dir - offset;

            theplayer.transform.position = Vector2.Lerp(theplayer.transform.position, _dir, Time.deltaTime * speed);

        }


    } // end 

暂无
暂无

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

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