我试图获取敌人大炮的所有变形,所以我将enemyCans
变量声明如下:
GameObject[] enemyCans;
然后,我在start()
方法中为其分配了以下值:
enemyCans = GameObject.FindGameObjectsWithTag("EnemyCannon").transform;
但是,我在这里使用.transform
就像我在分配我的播放器变换值时那样:
player= GameObject.FindGameObjectWithTag("Player").transform;
我知道这可能与enemyCans
是一个数组有关,但我不确定如何获得这些转换值。
答案 0 :(得分:1)
这与enemyCans
是一组游戏对象(GameObject[]
)的事实有关。
如果您想要变换,则必须遍历enemyCans
数组并单独检索每个变换。
我希望有所帮助!
修改强>
完全归功于@ Orphid在下面给出的建议。
对于OP的澄清,您需要使用Linq(namespace System.Linq
)。另外在末尾添加ToArray()
以将其转换为数组。
示例:
Transform[] enemyXforms =
GameObject.FindGameObjectsWithTag("EnemyCannon").Select(cannon => cannon.transform).ToArray();
答案 1 :(得分:1)
如果问题与作为数组的类型有关,比如
foreach(var cannon in GameObject.FindGameObjectsWithTag("EnemyCannon"))
{
//aggregate result here
}
如果它只是一个数组,你也可以选择这样的变换:
GameObject.FindGameObjectsWithTag("EnemyCannon").Select(cannon => cannon.transform);