You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity中按键触发实例化次数限制功能失效问题排查

问题分析与解决方案

你的代码存在两个核心问题导致不符合预期:

  1. 不必要的脚本禁用:按下5键后执行this.enabled = false;会直接禁用当前脚本,Update函数不再运行,本应无法检测第二次按键。但你实际每次按下都能触发,大概率是Object1预制体上也挂载了Placement脚本——每次实例化Object1都会生成新的脚本实例,新实例的count初始值为0,导致每次按下都会触发实例化,看起来计数器被重置。
  2. 逻辑矛盾:禁用脚本的操作和你“允许两次触发”的需求完全冲突,保留这行代码根本无法实现第二次按键检测。

修正后的代码

public class Placement : MonoBehaviour
{
    public GameObject Object1;
    private int count = 0;

    void Update()
    {
        Debug.Log(count);
        if (Input.GetKeyDown(KeyCode.Alpha5) && count < 2)
        {
            count++;
            Instantiate(Object1, transform.position, transform.rotation);
        }
    }
}

关键说明

  • 移除this.enabled = false;,让脚本持续运行以检测后续按键。
  • 检查并确保只有一个对象挂载了Placement脚本,且Object1预制体上没有该脚本,避免多实例导致的计数器重置问题。
  • 修正后逻辑:每次按下5键时,若计数小于2则执行实例化并递增计数,第三次及以后按下将无响应。

内容的提问来源于stack exchange,提问作者Asfiris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 17:40:22