2016-02-24 3 views
0

Я пытаюсь получить все прообразы моего врага Кэннона, так что я объявил переменную enemyCans следующим образом:Найти все преобразования для массива?

GameObject[] enemyCans; 

Затем я назначил следующее значение для него в start() методе:

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

Однако, я не могу использовать .transform здесь, как я мог, когда я назначил мой игрок преобразовать значение следующим образом:

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

Я знаю, что это, вероятно, связано с enemyCans, являющимся массивом, но я не уверен, как еще получить эти значения преобразования.

ответ

1

Это связано с тем, что enemyCans представляет собой массив игровых объектов (GameObject[]).

Если вы хотите преобразовать, вам придется перебирать массив enemyCans и извлекать каждое из своих преобразований индивидуально.

Я надеюсь, что это поможет!

EDIT: Полный кредит для ответа @ Orphid ниже для указания этого. Для разъяснения ОП вам понадобится Linq (namespace System.Linq) для этого. Также добавьте ToArray() в конец, чтобы преобразовать его в массив.

Пример:

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

Если проблема связана с типом является массив, что-то вроде

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

Если это просто массив, вы можете также выбрать преобразования, как это:

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