我试图用触摸屏幕时跳起的玩家(球)创建一个2D游戏。我用以下方式完成了这个:
if (Input.GetMouseButtonDown (0) || Input.GetKeyDown("space")) {
gameObject.GetComponent<Rigidbody2D>().velocity=Vector.up*speed;
gameObject.GetComponent<AudioSource>().Play();
}
(代码在Update()
)
编辑器中没有任何类型的问题,但是当我在Android手机上调试游戏时,每次触摸屏幕时球都不会跳跃,并且由于重力,它会下降,如同如果我没有碰过特别是我注意到问题在几分钟的比赛后,或者每次我调整水平时都更明显。我尝试了很多东西,但没有人帮助过我。我做错了什么?
答案 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;物理模拟。