2015-08-24 5 views
0

При реализации большой гексагональной сетки (256x256) плит в игре Unity игра становится очень медленной и вряд ли может функционировать. Шестиугольники в сборнике. Сценарий управляет размером сетки и интервалом между каждым шестиугольником. Как сделать рендеринг сетки 1024x1024 объектов Unity?Hexagon Unity TIles - медленная производительность

Когда игра построена на Win64, она также все еще довольно медленная.

Это изображение шестиугольников оказываются:

http://i.imgur.com/UbA6USt.png

ответ

0

Попробуйте сделать элементы сетки статическими и убедитесь, что статическое пакетирование включено в настройках плеера. Это значительно оптимизирует их рендеринг. Вы, вероятно, должны даже дойти до того, чтобы объединить их все в одну сетку (для этой цели см. Такие инструменты, как this one).

Если вы можете показать нам фактическую иерархию сцен и фактическую структуру узлов сетки, мы можем помочь еще больше.

+0

Я сделал статическую вещь для всех объектов и убедился, что настройка включена. Я могу сказать, что это помогло выработать немного. Я должен был бы, вероятно, сказать, что я генерирую эти узлы через скрипт во время выполнения. Некоторое время мне предлагалось, чтобы у меня была шестиугольная сетка на одном плане и расист. Затем найдите локальную координату гексагона и сделайте какой-то накладной. Это сделало бы его более быстрым и оптимизированным, но это не позволило мне получить доступ к гексам, как я хотел. – nate6631

0

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

Это причина того, что клоны невесты не видны из Единства.

Если вы не можете установить шестиугольники в статические по какой-либо причине (то есть: создание процедурных уровней и т. Д.), Вам придется, возможно, смоделировать шестиугольники с помощью манипуляции творческим шейдером (например, сохранение каждой сетки в один массив вершин с секундой, которая отслеживает соответствующий идентификатор ячейки) или путем написания скрипта, который создает/добавляет вершины и грани к одной сетке на одном игровом объекте.

Вы также можете ускорить сцену, создавая меньшие уровни и загружая/выгружая их, когда игрок движется к ним. См.: Application.LoadLevelAdditive

+0

Да, это был еще один вариант (шейдеры). Я действительно не буду лгать, у меня нет большого опыта работы с шейдерами, и я не могу написать свой собственный. Это действительно будет способ пойти, не так ли? – nate6631

Смежные вопросы