Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (1)

Лучшие ответы пользователя

Все ответы (3)
  • Как мне получить все объекты, падающие на зону триггера?

    @Andrei1805
    В скрипте объекта должна лежать какая то public переменная in_zone, которая по умолчанию false. Также объект надо как-то узнавать, например по тэгу, но можно придумать много других способов. Например скрипт у объекта называется object_skript. Тогда в скрипте зоны:

    List<GameObject>  objects;
    void OnTriggerEnter(Collider other)
    {
        if(other.tag == "object") //Можно выбрать любой тэг
        {
            if(!other.GetComponent<object_skript>().in_zone) // проверка не в зоне ли уже объект
            {
                other.GetComponent<object_skript>().in_zone = true; // объект попал в зону
                objects.Add(new GameObject());
                objects[objects.Count - 1] = other.gameObject; // Добавление в лист нового компонента
            }
        }
    }


    Ну и дальше там можно смотреть на objects.Count и сравнивать его с чем надо. Также если где-то будет удаление объектов из листа, то в листе будут возникать позиции с null, тогда добавление в лист лучше написать так:

    bool x = true;
    for(int i = 0; i < objects.Count;)
    {
       if(objects[i] == null)
       {
           x = false;
           objects[i] = other.gameObject;
           other.GetComponent<object_skript>().in_zone = true;
           break;
       }
       ++i;
    }
    if(x)
    {
       other.GetComponent<object_skript>().in_zone = true;
       objects.Add(new GameObject());
       objects[objects.Count - 1] = other.gameObject;
    }
    Ответ написан
    3 комментария