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