簡體   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