Большой 2D-мир Unity3d

Я планирую создать платформер на платформе 2d с большим миром, как в террариуме.

У меня есть некоторые вопросы, чтобы спросить, как управлять этим большим миром в Unity3D.

Сценарий

World Size = 1000 x 1000 = 1 миллион плиток

Плитка, отображаемая в камере = 32 x 24

Размер фрагмента = 32 x 24

В одной сцене одновременно присутствуют 9 кусков (центр, левый, правый, верхний, нижний и 4 диагональные), общая плитка, присутствующая одновременно 6912

Вопросы

Каждая плитка - это gameObect с коллайдером на ней, скрипт, содержащий информацию о плитке (здоровье, тип), не будет занимать много памяти и обработки, потому что в этой сцене присутствует 6912 плиток

Если я создаю сетку куска, как будет обрабатываться столкновение (учитывая, что каждая плитка разрушаема)? Должен ли я перерисовать сетку, даже если одна плитка будет уничтожена? Не будет ли это менее оптимизировано по сравнению с подходом на основе плитки?

Мне бы очень хотелось, если бы кто-нибудь здесь сделал это в единстве и будет очень благодарен, если вы поделитесь своим подходом к работе с большим миром. Спасибо!

3 голоса | спросил ahmedkl 22 AMpWed, 22 Apr 2015 10:22:33 +030022Wednesday 2015, 10:22:33

1 ответ


1

Я пытаюсь с некоторым соображением. 1000 * 1000 похож на растровое изображение 1024 * 1024, что можно легко хранить в памяти.

Вы можете «каббать» тип и здоровье каждого блока в цвете /альфе каждого пикселя. Затем вы активируете /деактивируете (или активируете /деактивируете) блоки во время выполнения, ссылаясь на положение камеры. Таким образом, вы можете иметь 32 x 24 блока (+ дельта для кеширования), которые активны на экране, что повышает производительность.

Если вам не нравится растровый подход, вы можете определить двумерный массив структур.

Наконец, плитки «destructibles» - это только подмножество плиток (например, верхние, где идет какой-то символ?), снова активировать /деактивировать «разрушаемый» скрипт во время выполнения. (т. е. когда вы уничтожите блок, проверьте, можете ли вы активировать соседские скрипты)

ответил dnk drone.vs.drones 22 AMpWed, 22 Apr 2015 11:41:10 +030041Wednesday 2015, 11:41:10

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132