禁用Unity3d中的触摸保持

时间:2017-01-07 09:19:01

标签: c# unity3d touch

我正在使用脚本,所以当用户触摸屏幕时,播放器会跳到空中 但问题是当用户保持触摸时,播放器停留在空中并且永不摔倒 我怎样才能禁用触摸保持,以便当用户只触摸一次玩家跳过一次?

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);
    }
}

}

1 个答案:

答案 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()函数中。