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

Unity场景Tilemap与角色莫名克隆问题排查求助

问题分析与解决方案
  • 核心问题:你代码里直接Instantiate了场景中已存在的Tilemap组件,而非预制体。Unity实例化组件时,会连带克隆其所在的整个GameObject,包括对象上的所有其他组件(比如角色组件若在同一对象上,就会被同步克隆),这就是运行时出现双Tilemap、角色莫名复制的原因。
  • 修复步骤:
    1. 将目标Tilemap所在的GameObject保存为预制体(Hierarchy面板选中对象,拖入Project面板即可)
    2. 修改代码,直接实例化预制体而非Tilemap组件:
      int MapNumber = GameState.currentRoom;
      GameObject mapPrefab = GridsMap[MapNumber]; // GridsMap改为存储预制体引用
      CurrentMap = Instantiate(mapPrefab).GetComponent<Tilemap>();
      CurrentMap.transform.position = Anchor;
      
    3. 检查GridsMap数组,确保其中存储的是预制体对象,而非场景中的实例对象
  • 额外排查点:如果场景初始就有一个Tilemap实例,运行时代码又实例化一个,必然出现两个实例。可以移除场景中的初始Tilemap,仅通过代码动态生成;或是切换房间前销毁旧的CurrentMap实例:
    if(CurrentMap != null)
    {
        Destroy(CurrentMap.gameObject);
    }
    // 再执行实例化逻辑
    

内容的提问来源于stack exchange,提问作者костя черникович

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 15:20:32