Воскресенье, 24 Ноября 2024, 05:03

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Дети детей и детей дети ....
DalyДата: Понедельник, 27 Октября 2014, 16:48 | Сообщение # 1
постоянный участник
Сейчас нет на сайте
Помогите написать цыкл, суть вот в чем.

Мне нужно чтобы в parent(Главного объекта) цыкл проверял наличие компонента Transfrom(то бишь каждый объект)
И у каждого объекта проверялоась на наличии того или иного компонента, в моем случаи это MeshRenderer.
И по ходу игры в paren(главный объект) удочеряются объекты со своими детьми.

И как написать универсальный скрипт, который будет проверять дети детей, детей дети и т.д.

Мои наработки:

Код
public GameObject Ship;

  public void StepTwo(bool Activis = false)
  {
    foreach(Transform obj in Ship.GetComponentInChildren<Transform>())
    {
     if(obj.tag == "Struct" && obj.GetComponentInChildren<MeshRenderer>())
     {
      obj.GetComponentInChildren<MeshRenderer>().enabled = true;
     }
    }
  }


На первом скриншоте все дочернии объекты с нужным тегом показаны.
А на втором скриншоте я скрываю дочернии объекты, но другие "комнаты" дети детей не скрываются.

FolleahДата: Понедельник, 27 Октября 2014, 16:50 | Сообщение # 2
Архитектор
Сейчас нет на сайте
Кстати, где новость о релизе бета-версии 5 юньки для ограниченного круга лиц?

DalyДата: Понедельник, 27 Октября 2014, 16:52 | Сообщение # 3
постоянный участник
Сейчас нет на сайте
Folleah, Оффтопишь парень, оффтопишь.
FolleahДата: Понедельник, 27 Октября 2014, 16:53 | Сообщение # 4
Архитектор
Сейчас нет на сайте
Я нечаянно... Меня заставили!
P.S. Не очень понятно описал суть того, что тебе нужно


DalyДата: Понедельник, 27 Октября 2014, 16:59 | Сообщение # 5
постоянный участник
Сейчас нет на сайте
Folleah, Хорошо вот.



Тут я указал Гл. объект самый первый в иерархии, и новые дочернии созданные (clone).
Так вот, скрипт проверяет дочернии объекты только Гл. объекта, а новые дочернии объекты он не проверяет.
RangerДата: Понедельник, 27 Октября 2014, 17:25 | Сообщение # 6
почти ветеран
Сейчас нет на сайте
GameObject.GetComponentsInChildren.html
Цитата
The search for components is carried out recursively on child objects, so it includes children of children, and so on.

foreach(Transform obj in Ship.GetComponent(!!!!!!!!!!!!!!!!!!!!!!!!)s(!!!!!!!!!!!!!!!!!!!!!!!!)InChildren<Transform>())
Код
    public void StepTwo(bool Activis = false)  
  {
   Component[] transforms = gameObject.GetComponentsInChildren<Transform>();
   foreach(Transform _obj in transforms)  
   {  
    if(_obj.GetComponent<MeshRenderer>() != null)  
    {  
     _obj.GetComponent<MeshRenderer>().enabled = false;  
    }  
   }  
  }
}



DalyДата: Понедельник, 27 Октября 2014, 17:32 | Сообщение # 7
постоянный участник
Сейчас нет на сайте
Ranger, Спасибо этим способом и воспользовался + добавил функционала)

Гейм дизайнер и сценарист посчитал это название нормальным) Ну хз, мне нравится, необычно)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг