我只想使一个操作可以使用两次。例如:
我在键盘上按5,Object1被示例化,但同时计数器增加1。在这之后,我再次按5,Object1再次被示例化,计数器再次增加1。所以,这一次,如果我尝试第三次按5,什么也没有发生。
应该很简单吧?我也是这么想的,我仍然认为应该这么简单,但是,每次我按5,Object1被示例化,计数器不增加。更具体地说,计数器增加了一段时间,在那一瞬间之后,它重置为0。
public class Placement : MonoBehaviour
{
public GameObject Object1;
private int count = 0;
void Start()
{
}
void Update()
{
Debug.Log(count);
if ((Input.GetKeyDown(KeyCode.Alpha5)) && count < 2)
{
count = count + 1;
Instantiate(Object1, transform.position, transform.rotation);
this.enabled = false;
}
}
}
我简化了代码,只是为了开门见山。通过控制台(调试)我看到计数在每个周期自动重置为0 ...
1条答案
按热度按时间gajydyqb1#
根据您的代码逻辑,您将在按5后禁用对象。您可能希望在按2后禁用它。
你的计数器没有增加的原因是:您记录
count
,但按5后禁用它,因此Update()
中不会再发生日志。提示:您可以将
count
设置为公共的,或者使用[Serializable]
,或者使用调试检查器视图来查看count的实际值,而不是依赖Debug.Log。edit:如果Object 1附加了
Placement
脚本,您将创建越来越多的脚本(每个脚本都有一个count
变量)。最好有一个示例化其他对象的管理器对象,但是你也可以删除/禁用示例化对象上的脚本,如下所示: