Найти объект, который имеет общий компонентC#

Место общения программистов C#
Ответить
Anonymous
 Найти объект, который имеет общий компонент

Сообщение Anonymous »

Я был полностью утомлен перетаскиванием компонентов в инспекторе.
Что я хочу сделать, так это найти каждый объект, у которого есть компонент, который я выбрал с помощью T

Код: Выделить всё

void GetAllGameObjectWhichHave(ref int cnt, GameObject[] f_array, GameObject transformForSearch)
{

foreach (Transform trans in transformForSearch.transform)
{
GetAllGameObjectWhichHave(ref cnt, f_array, trans.gameObject);

T temp = trans.gameObject.GetComponent();

if (temp != null && cnt < f_array.Length)
{
f_array[cnt++] = trans.gameObject;
}
}
}
и я использовал вот так

Код: Выделить всё

//OnAwake()
GetAllGameObjectWhichHave(ref zeroInt, enoughArray, TopHierarchyObj);
Эта рекурсивная функция получает КАЖДЫЙ игровой объект и сохраняет его в f_array. Он не может фильтровать, и значение «temp» всегда было не нулевым.

Код: Выделить всё

T temp = trans.gameObject.GetComponent()
кажется не работает, то, что я имел в виду.
Я что-то неправильно понял?

Подробнее здесь: https://stackoverflow.com/questions/310 ... -component
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

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

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»