首页 > 解决方案 > 我的第一个 Android 游戏的多点触控错误

问题描述

现在我一直在开发一款游戏,如果在屏幕左侧向上或向下滑动,角色就会向上或向下移动。然后,如果我点击屏幕右侧,他也可以发射弹丸。我已经成功使它工作,但问题是当我点击右侧屏幕时滑动功能不起作用。两者都只有在我做其中之一时才有效。如果我发射弹丸,我无法移动角色。有什么建议么?欣赏它的高级。

这是代码:

对于滑动移动功能:

void Swipe() {

    if (Input.touchCount > 0) {

        Touch t = Input.GetTouch(0);

        if (t.phase == TouchPhase.Began)
        {

            lp = t.position;
            fp = t.position;
            text.text = fp.x.ToString();
        }
        else if (t.phase == TouchPhase.Ended)
        {

            lp = t.position;

            //Swipe Up
            if (fp.y < lp.y && fp.x < 400)
            {


                currentLane += 1;


            }
            //Swipe Down
            else if (fp.y > lp.y && fp.x < 400)
            {

                currentLane -= 1;

            }
        }



    }

}

这是点击或发射射弹功能的代码:

    void FireBullets() {

    interval += 2 * Time.deltaTime;

    anim.SetBool("Attacking", firing);


    if (Input.touchCount > 0 && interval > .75f) {


        Vector3 bulletTouchPos;

        Touch bulletT = Input.GetTouch(0);
        bulletTouchPos = bulletT.position;

        if (bulletT.phase == TouchPhase.Began) {

            if (bulletTouchPos.x > 400)
            {

                interval = 0;
                firing = true;
                //Fire Bullets
                Instantiate(bullets, new Vector3(transform.position.x + 1.2f, transform.position.y + .3f, transform.position.z), Quaternion.identity);
            }
        }


    }else
    {

       firing = false;

    }


}

标签: androidunity3dgame-development

解决方案


您的lpfp价值观不关心正在检查哪个手指。

如果您想一次检测多个触摸手势,则需要根据是哪个手指来区分您的检测。

您可以通过查看Touch.fingerId每个手指的唯一值来做到这一点。手指只是分配给给定触摸点的 ID,因为它在屏幕上移动,以便从当前也在屏幕上的其他触摸点中识别它。

你需要调整你的代码来处理如何存储你需要的信息来做你需要的,但这应该让你开始。


推荐阅读