Найти тему
47 подписчиков

Асинхронная загрузка и инстанцирование префабов


Вообще это довольно глубокая тема, так как что такое префаб? По сути это ямлевый конфиг и основной вес там занимают ассеты, на которые он ссылается. Эти ассеты можно грузить асинхронно сделав кастомные парсеры ресурсов, которые работают хоть в отдельном потоке. Я когда-то писал такой для 3д моделей, чтобы асинхронно и прогрессивно грузить модели по несколько gb. Работает правда только с Obj, но надо будет тоже оформить и выложить в опенсорс :)

Что-то там работает через Addressables, но на трёх проектах адресаблы так зарекомендовали себя, что к ним я ближайший год не подойду. Так как там очень много неочевидного поведения или же просто неудобного, на мой взгляд. Может я просто не умею их готовить :)

Но допустим у вас задача ставить 10000 юнитов в кадр (зачем-то, хотя допустим пример вокселизации более понятен и прогрузки воксельной модели) или просто много однотипных объектов, а фризить игру не хочется. Я написал довольно общий пример, как это можно делать :) https://github.com/Nox7atra/AsyncPrefabLoader Может кому-то будет полезно :) На дженериках, чин по чину :)

В целом тут стоит вспомнить паттерн Команда (https://t.me/dyadichenkoga/76) потому что принцип примерно такой же, и он показывает насколько удобно с помощью команды делать асинхронные или отложенные операции вообще на любую тему, какая вам только вздумается :)
1 минута