我有一个四元组对象,其中png图形作为子对象。
此区域是点击/点击区域。
我将一个脚本附加到该对象,它的代码为:
// Update is called once per frame
void FixedUpdate () {
bool tapped = Input.GetButton("Fire1");
if (tapped){
Debug.Log ("diram");
}
}
问题是,点击测试时会点击两次,而不是点击一次。
我在这里做错了什么?我不希望在点按或点击两次调用函数。
答案 0 :(得分:1)
Input.GetButton
返回true。您应该使用Input.GetButton[Down|Up]。这些方法分别在按下或释放按钮的第一帧中返回true。
还要考虑在Update
而不是FixedUpdate
内阅读输入事件。
答案 1 :(得分:0)
如果要延迟拍摄,还可以添加一个计时器和另一个变量:
public float delay; //change this in the Inspector
public bool canshoot = true;
private void Start()
{
bool input = Input.GetButton("Fire 1");
if(input && canshoot){
canshoot=false;
Shoot() // your shooting function)
StartCoroutine(Reset(delay));
}
}
IEnumerator Reset(float time){
yield return new WaitForSecondsRealTime(time);
canshoot = true;
}
希望能有所帮助!