为什么我的button脚本不工作?

好吧,所以我是新来的C#,我做了这个脚本。 我记住的目标是,当玩家在button上并按下button(在这种情况下是W)时,button从开启到closures(反之亦然)。 我遇到的问题是,当字符站在button上并按下W时,它并不总是切换其状态,我不知道为什么。 任何信息,将不胜感激。

using System.Collections; using System.Collections.Generic; using UnityEngine; public class Button : MonoBehaviour { public bool Pressed = false; Animator Anim; // Use this for initialization void Start () { Anim = GetComponent<Animator> (); } // Update is called once per frame void Update () { Anim.SetBool ("Pressed", Pressed); } void OnTriggerStay2D(Collider2D other){ if (Input.GetKey(KeyCode.W)){ if (Pressed){ Pressed = false; } else { Pressed = true; } } } } 

如自动生成的评论所告知的那样,这些方法在每一帧被调用,这意味着每秒大约60到120次。

当你按下W ,你可以确定它持续超过1/100秒,这意味着bool将会多次切换值,并且你有50%的机会最终得到你想要的结果,50%的机会别。