Unity游戏无法检测每次点击

时间:2016-12-29 17:23:14

标签: c# android unity3d

我试图用触摸屏幕时跳起的玩家(球)创建一个2D游戏。我用以下方式完成了这个:

if (Input.GetMouseButtonDown (0) || Input.GetKeyDown("space")) {
    gameObject.GetComponent<Rigidbody2D>().velocity=Vector.up*speed;
    gameObject.GetComponent<AudioSource>().Play();
}

(代码在Update()) 编辑器中没有任何类型的问题,但是当我在Android手机上调试游戏时,每次触摸屏幕时球都不会跳跃,并且由于重力,它会下降,如同如果我没有碰过特别是我注意到问题在几分钟的比赛后,或者每次我调整水平时都更明显。我尝试了很多东西,但没有人帮助过我。我做错了什么?

2 个答案:

答案 0 :(得分:3)

Input.GetMouseButtonDown()Input.GetKeyDown()都与移动触控输入检测无关。对于触摸检测,请检查this参考。

答案 1 :(得分:1)

Input.GetMouseButtonDown(0)没有正式使用触摸,但是,它有时仍会被调用,这是无证的行为,因此不应该依赖。

如果您想检查触摸,可以使用:

if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began)

作为旁注(这不是您所拥有的触摸输入问题的一部分):尝试向rigidbody添加力量,而不是设置velocity直接,因为这可能会&#34;打破&#34;物理模拟。