在第一次触摸后禁用GetTouch
本文关键字:GetTouch 第一次 触摸 | 更新日期: 2023-09-27 18:16:26
我有一个对象,我想通过GetTouch把它扔到一定距离。我的代码是工作的,但问题是,当我触摸屏幕多次,对象也移动多次。我不希望物体移动多次。我希望我的对象只移动一次,无论我触摸或滑动屏幕多少次。这是我尝试过的方法。
public class RealBallMove : MonoBehaviour {
public float speed;
public Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
}
void Update()
{
if (Input.touchCount >0 &&
Input.GetTouch(0).phase == TouchPhase.Ended || (Input.GetMouseButtonDown(0)))
{
//rb.AddForce(Vector3.forward * speed);
//rb.AddForce(Vector3.up * speed);
GetComponent<Rigidbody> ().isKinematic = false;
GetComponent<Rigidbody> ().AddForce (new Vector3(0.0f, 20.0f, 12.0f));
//Destroy (GetComponent<Rigidbody>());
}
}}
只需添加一个布尔值,表示你是否扔过球;)
public class RealBallMove : MonoBehaviour {
public float speed;
public Rigidbody rb;
private bool thrown ;
void Start()
{
rb = GetComponent<Rigidbody>();
}
void Update()
{
if (
!thrown && (
(Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Ended ) ||
Input.GetMouseButtonDown(0) )
)
{
rb.isKinematic = false;
rb.AddForce (new Vector3(0.0f, 20.0f, 12.0f));
thrown = true ;
}
}
}
另一种选择是在检测到触摸时禁用脚本,但只有当您的脚本只是上面的行而没有其他内容时。