繁体   English   中英

在Unity3d中禁用触摸保持

[英]Disable Touch Hold in Unity3d

我正在使用脚本,因此当用户触摸屏幕播放器时,播放器跳到空中,但是问题是当用户保持触摸时,播放器卡在空中并且永不掉落,我如何禁用触摸保持,所以当用户仅触摸一次播放器跳下时,一次?

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

}

您只需为触摸阶段添加检查。 在这种情况下, TouchPhase.Began是合适的,因为它会在用户触摸屏幕时跳转。 如果要在用户释放触摸时使其跳转,请使用TouchPhase.Ended

foreach (Touch touch in Input.touches)
{
    if (touch.phase == TouchPhase.Began)
    {
        Rigid.AddForce(Vector2.up * UpForce);
    }
}

注意事项

您应该始终在Update()函数中而不是在FixedUpdate()函数中检查Input事件。 我建议您将代码放在Update()函数中。 您的物理代码应放在FixedUpdate()函数中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM