Klatch.media

Создание игр

Roblox Studio получила Collections для группировки игровых объектов

Живые запросы автоматически добавляют и исключают объекты, а движок подключает события к группе.

Roblox Studio получила Collections для группировки игровых объектов
Roblox / DevForum

Roblox начала тестирование Collections в Studio. Функция, объявленная 13 августа, расширяет CollectionService: разработчик определяет группу объектов запросом, а движок отслеживает, какие экземпляры подходят под условия. Когда состояние объекта меняется, он автоматически входит в коллекцию или выходит из неё.

Автор привязывает логику ко всей группе один раз. Collections подключает обработчики событий к новым участникам и отключает их после выхода. По объяснению Roblox, это сокращает служебный код и помогает избежать утечек, возникающих, когда разработчик забывает удалить соединение с исчезнувшим объектом.

В демонстрации компания собирает все BasePart с именем KillOnTouch. При добавлении части обработчик меняет её внешний вид, а событие OnTouched проверяет прикоснувшегося персонажа. Если подходящий объект появится позднее, зарегистрированное поведение применится автоматически. Для этого не требуется вручную вызывать Connect для каждой части.

Запросы могут опираться на изменяемое состояние. Другой пример включает противников в группу при снижении здоровья до определённого значения: OnAdded запускает поведение ярости, а OnRemoved возвращает обычное оформление. Разработчик получает общий механизм для наблюдения за группой без отдельного отслеживания каждого свойства.

Roblox связывает Collections и с потоковой загрузкой мира, при которой объекты на клиенте появляются и исчезают по мере движения игрока. Среди API доступны CreateCollection, ForEach и Destroy, а также обработчики изменений свойств, атрибутов и сигналов RunService. Для проверки функции нужно включить Collections в Beta Features; к объявлению приложен пример полосы препятствий.