@HeySleare

Как в юнити искать среди дочерних объектов по тегу?

У меня есть много разных факелов, ламп и канделябров где объект света является дочерним. Мне нужно выключать свет в этих объектах. Сейчас это делается так
transform.FindChild("CandleLight").gameObject.SetActive(true);
но это не удобно, так как названия у дочерних объектов разные, и мне нужно выключать именно с тегом "Light"
  • Вопрос задан
  • 58 просмотров
Пригласить эксперта
Ответы на вопрос 1
ShockWave2048
@ShockWave2048
imposter
Как метод расширения для класса Transform:
public static void AddDescendantsWithTag(this Transform parent, string tag, List<GameObject> list)
{
      foreach (Transform child in parent)
      {
            if (child.gameObject.tag == tag)
            {
                list.Add(child.gameObject);
            }

            AddDescendantsWithTag(child, tag, list);
      }
}
// Применяем:
List<GameObject> list = new List<GameObject>();
transform.AddDescendantsWithTag("Light", list);
list.ForEach((go)=>{go.SetActive(true);});
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы