Оптимизация сборных конструкций

#unity3d #optimization #prefab

Вопрос:

У нас есть компонент MonoBehaviour, содержащий длинный список сборных модулей (может быть 100). Эти сборные конструкции предназначены для создания/уничтожения по мере необходимости. Компонент является одноэлементным, создаваемым при первом использовании.

Вопрос связан с использованием памяти, с использованием компонента с монодействием, я понимаю, что это означает, что все сборные файлы загружаются на диск при создании компонента. Я ищу способ ограничить загрузку этих редко используемых сборных модулей.

Я подумал о том, чтобы поместить их в разные объекты сценариев, чтобы загружались только списки использованных сборных модулей, а списки менее распространенных сборных модулей, скорее всего, загружались редко или никогда.

Я ищу советы по этой теме.

Комментарии:

1. Пока у вас есть какие-либо ссылки, загруженные в сцену, все загружается в память. У вас проблемы с памятью? Вы использовали профилировщик? Обычно лучше не проводить предварительную оптимизацию, когда у вас нет проблем. ПРАВКА: Если у вас действительно есть проблема, вы можете использовать адресные файлы или Resources для ленивой загрузки — это, однако, приведет к некоторым нагрузкам на процессор.

2. Существует значительное постоянное использование памяти, так как она может состоять из более чем 100 префабов с текстурами и компонентами.

3. learn.unity.com/project/getting-started-with-addressables

4. Другой способ уменьшить использование памяти-это использование пула объектов или совместное использование одного и того же материала между всеми создаваемыми объектами для уменьшения вызовов рисования (не по умолчанию для каждого сборного модуля). Кроме того, используйте профилировщик, чтобы легко определить, что потребляет слишком много памяти.

5. вы использовали профилировщик и увидели проблему? И снова, вы можете использовать адресные файлы, как я упоминал ранее, и @derHugo связал