查找数组的所有转换

本文关键字:转换 数组 查找 | 更新日期: 2023-09-27 18:36:02

我试图获取我的敌方大炮的所有变换,所以我声明了enemyCans变量,如下所示:

GameObject[] enemyCans;

然后,我在 start() 方法中为其分配了以下值:

enemyCans = GameObject.FindGameObjectsWithTag("EnemyCannon").transform;

但是,我不能像分配播放器的转换值时那样在此处使用.transform

player= GameObject.FindGameObjectWithTag("Player").transform;

我知道这可能与enemyCans数组有关,但我不确定如何获得这些转换值。

查找数组的所有转换

这与

enemyCans是一个游戏对象的数组(GameObject[]

)有关。

如果需要转换,则必须循环访问 enemyCans 数组并单独检索其每个转换。

我希望这有所帮助!

编辑:完全归功于@Orphid在下面的回答中提出了这一点。为了澄清 OP,您需要为此使用 Linq ( namespace System.Linq )。还要在末尾添加ToArray()以将其转换为数组。

例:

Transform[] enemyXforms = 
GameObject.FindGameObjectsWithTag("EnemyCannon").Select(cannon => cannon.transform).ToArray();

如果问题与类型是数组有关,则类似于

foreach(var cannon in GameObject.FindGameObjectsWithTag("EnemyCannon"))
{
  //aggregate result here
}

如果它只是一个数组,你也可以像这样选择转换:

GameObject.FindGameObjectsWithTag("EnemyCannon").Select(cannon => cannon.transform);