对象跟随手指仅在屏幕上滑动时

时间:2018-08-15 17:59:35

标签: c# unity3d

我有一个球体正在向前移动,当它在屏幕上滑动时(仅在x轴上),我需要它平稳地跟随我的手指。 我试图使Rolling SkyColor Road

一样准确

enter image description here

当球在x轴上滑动并平稳移动时,应该跟随我的手指。 就像我之前提到的游戏一样。 我尝试了OnMouseDrag和多种方法,但是由于它没有跟随手指或在手指滑动时没有移动,因此无法正常工作。

3 个答案:

答案 0 :(得分:1)

据我了解,您似乎想获取用户手指的位置并相应地移动球?

您可以使用Touch.position

示例:

private void Update()
{
    Touch touch = Input.GetTouch(0); // Get the touch data for the first finger
    Vector2 position = touch.position; // Get the position in screen-space
    Vector3 worldPosition = Camera.main.ScreenToWorldPoint(position); // Convert the position to world space

    Vector3 ballPosition = ball.transform.position;
    ball.transform.position = new Vector3(worldPosition.x, ballPosition.y, ballPosition.z); // Move the ball
}

答案 1 :(得分:0)

我认为您应该与球体分开处理输入。

将其放在脚本上以检测屏幕上的滑动。

    bool inputBegan = false;
    Vector2 beganPosition;

    void Update()
    {
        if (!inputBegan && Input.GetMouseButtonDown (0))
        {
            inputBegan = true;
            beganPosition = Input.mousePosition;
        }
        else if (inputBegan && Input.GetMouseButtonUp (0))
        {
            //If you want a threshold you need to change this comparison
            if (beganPosition.x > Input.mousePosition) 
            {
                MoveBallLeft ();
            }
            else
            {
                MoveBallRight ();
            }
            inputBegan = false;
        }
    }

您可以通过将球Vector2.right * movingDistance添加或减去targetPosition来实现球的运动,如果您希望球运动或使用currentPositionpinetree.com - displays information about pine trees oaktree.com - displays information about oak trees admin.pinetree.com - displays admin for managing pine trees admin.oaktree.com - displays admin for managing oak trees 使球缓慢移动,则每个更新周期都会增加一点变换距离。

答案 2 :(得分:0)

我通过this并将它的变量NavigationMultiplier设置为10000来解决了这个问题