查找数组的所有转换
本文关键字:转换 数组 查找 | 更新日期: 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);