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

Unity触发事件时删除所有Blocker预制体失败问题求助

解决Unity中删除所有Blocker预制体的问题

核心问题分析

你当前的删除代码里,Destroy(gameObject)只会销毁当前脚本挂载的单个对象,循环多少次都只会删这一个,自然无法清除所有Blocker。另外,SpawnManager生成Blocker时没有记录所有实例,导致你找不到要删除的对象集合。

修正步骤

1. 在SpawnManager中添加实例管理列表

首先在SpawnManager脚本里定义一个列表,用来保存所有生成的Blocker实例,同时添加单例方便其他脚本访问:

public class SpawnManager : MonoBehaviour
{
    public GameObject[] blockerPrefabs;
    public int tempclonecount = 1; // 初始设为1,避免启动时误触发删除
    public int blockeramounts;
    // 新增:保存所有活跃Blocker的列表
    private List<GameObject> activeBlockers = new List<GameObject>();
    // 新增:单例实例,方便其他脚本调用
    public static SpawnManager instance;

    private void Awake()
    {
        instance = this;
    }

    // 其他代码...
}

2. 修改生成逻辑,记录实例并避免重复生成

把原来写在Update里的生成逻辑改成单独方法,只在需要生成新组时调用,同时将每个生成的Blocker加入列表:

// 替换原Update中的生成代码,改为单独的生成方法
public void SpawnNewBlockers()
{
    int blockeramount = Random.Range(2, 7);
    blockeramounts = blockeramount;
    
    for (int i = 0; i < blockeramount; i++)
    {
        int blockerindex = Random.Range(0, blockerPrefabs.Length);
        GameObject newBlocker = Instantiate(blockerPrefabs[blockerindex], 
            new Vector3(Random.Range(-30, 30), 0, Random.Range(-30, 30)), 
            blockerPrefabs[blockerindex].transform.rotation);
        // 将新生成的Blocker加入管理列表
        activeBlockers.Add(newBlocker);
    }
}

删除原Update中的生成代码,避免每帧重复生成对象导致性能问题。

3. 修改删除逻辑,遍历列表销毁所有实例

在你的删除触发脚本中,通过SpawnManager的实例列表批量删除所有旧Blocker:

// 假设这段代码在球得分检测的脚本中
if (SpawnManager.instance.tempclonecount == 0 )
{     
    // 遍历列表销毁每个Blocker
    foreach (GameObject blocker in SpawnManager.instance.activeBlockers)
    {
        Destroy(blocker);
    }
    // 清空列表,避免残留无效引用
    SpawnManager.instance.activeBlockers.Clear();
    
    // 生成新的Blocker组
    SpawnManager.instance.SpawnNewBlockers();
    
    SpawnManager.instance.tempclonecount = 1;
}

额外注意事项

  • 确保只有当所有球都得分后,才将tempclonecount设为0,触发删除和生成流程。
  • 用列表管理动态生成的对象是Unity的常用做法,后续要做批量操作(比如修改属性、查找对象)都能通过列表快速实现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 06:01:01