[英]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.