Как еще оптимизировать 3D игру в Unity? Уже сделал всё, что знал, но FPS всё равно страдает!

Привет, комьюнити!

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

Проблема:

  • В игре много однотипных объектов а именно ресурсы, которые можно собирать.
  • Draw Calls доходят до 2000+ (а без моего скрипта — до 4000-5000).
  • GPU Instancing включен, тени отключены, но этого недостаточно.
  • Occlusion Culling не подходит, потому что объекты находятся под Terrain и всё равно рендерятся. (механика копания — ключевая фича) так что ставить блоки под терайном(для occlusion culling) не подходит .
  • Объединять меши нельзя — объекты подбираются игроком

Что уже сделано:
✅ Написал скрипт, который отключает MeshRenderer у объектов на указанном расстоянии от игрока (растояния маленкая +- 10 метров) (без него было 5000 Draw Calls, сейчас ~2000).
✅ Включил GPU Instancing на материалах.
✅ Выключил тени у этих объектов.
✅ Также добавил большие декоративные камни под терайном чтобы occlusian culling хоть как-то да помогал

Вопрос: Что еще можно сделать, чтобы снизить нагрузку? Может, есть еще какие-то способы ????

14 комментариев