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

Unity中FindGameObjectsWithTag添加敌人到List报CS1503错误求助

错误原因

GameObject.FindGameObjectsWithTag("drap") 的返回值是 GameObject[](游戏对象数组),而 List<GameObject>.Add() 方法仅支持传入单个 GameObject 类型参数,类型不匹配导致CS1503编译错误。

解决方案

方案1:批量添加(最简洁)

直接使用List提供的AddRange()方法,一次性把数组内所有匹配标签的对象加入列表,无需手动遍历:

List<GameObject> _enemies = new List<GameObject>();
_enemies.AddRange(GameObject.FindGameObjectsWithTag("drap"));

方案2:遍历逐个添加(适合需要额外校验的场景)

如果需要在加入列表前对对象做筛选(比如判断是否激活、是否挂载指定脚本),可以先接收返回的数组,遍历后逐个添加:

List<GameObject> _enemies = new List<GameObject>();
GameObject[] findResult = GameObject.FindGameObjectsWithTag("drap");
foreach (GameObject obj in findResult)
{
    // 可按需添加筛选逻辑,例:只添加激活状态的对象
    if (obj.activeSelf)
    {
        _enemies.Add(obj);
    }
}

注意:FindGameObjectsWithTag 仅会检索场景中处于激活状态、标签完全匹配的对象,初始禁用的对象不会被该方法捕获。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 21:09:58