我正在使用脚本,所以当用户触摸屏幕时,播放器会跳到空中 但问题是当用户保持触摸时,播放器停留在空中并且永不摔倒 我怎样才能禁用触摸保持,以便当用户只触摸一次玩家跳过一次?
Rigidbody2D Rigid;
public float UpForce;
public float RightSpeed;
void Start()
{
Rigid = GetComponent<Rigidbody2D> ();
}
void Update()
{
transform.Translate (Vector2.right * Time.deltaTime * RightSpeed);
}
void FixedUpdate()
{
foreach (Touch touch in Input.touches)
{
Rigid.AddForce (Vector2.up * UpForce);
}
}
}
答案 0 :(得分:1)
您只需添加检查触摸阶段即可。在这种情况下,TouchPhase.Began
是合适的,因为它会在用户触摸屏幕时跳转。如果您希望在用户释放触摸时跳转,请使用TouchPhase.Ended
。
foreach (Touch touch in Input.touches)
{
if (touch.phase == TouchPhase.Began)
{
Rigid.AddForce(Vector2.up * UpForce);
}
}
注意强>:
您应始终检查Update()
功能中的输入事件,而不是FixedUpdate()
功能。我建议你把这些代码放在Update()
函数中。您的物理代码应该放在FixedUpdate()
函数中。