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

如何获取列表中对象的Transform?不同名称敌人出生点解决方案

解决敌人出生点Transform获取问题的几种方案
  • 利用父物体批量收集
    新建一个空GameObject(比如命名为SpawnPointsContainer),把所有出生点都设为它的子物体。之后在代码里通过父物体直接获取所有子物体的Transform:

    List<Transform> spawnPoints = new List<Transform>();
    Transform container = GameObject.Find("SpawnPointsContainer").transform;
    foreach (Transform child in container)
    {
        spawnPoints.Add(child);
    }
    

    这种方式不需要修改任何出生点的属性,新增出生点时直接拖到父物体下即可,维护成本极低。

  • 自定义组件标记法
    创建一个空的标记组件,不需要写任何逻辑:

    public class SpawnPoint : MonoBehaviour {}
    

    给每个出生点的GameObject挂上这个组件,之后在代码里通过组件类型批量获取:

    List<Transform> spawnPoints = new List<Transform>();
    SpawnPoint[] allSpawnMarkers = FindObjectsOfType<SpawnPoint>();
    foreach (SpawnPoint marker in allSpawnMarkers)
    {
        spawnPoints.Add(marker.transform);
    }
    

    这是最推荐的方案之一,标记清晰,不受名称、层级变动影响,性能也比按名称遍历更优。

  • 名称规则匹配
    如果所有出生点名称都包含固定关键词(比如都以spawn开头),可以遍历场景中所有Transform并筛选:

    List<Transform> spawnPoints = new List<Transform>();
    Transform[] allTransforms = FindObjectsOfType<Transform>();
    foreach (Transform t in allTransforms)
    {
        if (t.name.StartsWith("spawn")) // 也可以用Contains匹配关键词
        {
            spawnPoints.Add(t);
        }
    }
    

    注意:FindObjectsOfType会遍历所有活跃物体,场景物体较多时建议只在初始化阶段调用一次。

  • ScriptableObject配置预设
    创建一个SpawnPointConfig类型的ScriptableObject:

    [CreateAssetMenu(fileName = "SpawnPointConfig", menuName = "Configs/Spawn Point Config")]
    public class SpawnPointConfig : ScriptableObject
    {
        public List<Transform> spawnPoints;
    }
    

    在编辑器里创建该配置文件,手动把所有出生点的Transform拖到列表中。代码里直接读取配置:

    public SpawnPointConfig spawnConfig; // 在Inspector面板赋值
    List<Transform> spawnPoints;
    
    void Start()
    {
        spawnPoints = spawnConfig.spawnPoints;
    }
    

    这种方式完全可控,适合出生点数量不多的场景,后期调整直观。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 02:25:23