|
0 / 0 / 0
Регистрация: 16.09.2015
Сообщений: 1
|
|
Большое количество уровней в арканоиде16.09.2015, 20:40. Показов 3126. Ответов 6
Метки нет (Все метки)
Делаю арканоид, в игре планирую иметь 50+ различных уровней. Для удобства хочу создать отдельное приложение - редактор. Вопрос, как обычно реализовывается загрузка уровней в таком случае? Пока мне открылся только вариант создания текстового документа наподобие
000001200230 420000132310 123543468999; и так для каждого уровня, загружая при его открытии префабы через скрипт.
0
|
|
| 16.09.2015, 20:40 | |
|
Ответы с готовыми решениями:
6
Количество дней, когда выпало самое большое количество осадков Количество уровней вложенных функций Определить количество уровней в TreeView |
|
103 / 90 / 19
Регистрация: 15.04.2015
Сообщений: 353
|
|
| 17.09.2015, 15:16 | |
|
Я делал редактор уровней для своей игры, с помощью специального типа данных. Каждый объект на уровне описывался структуртой в виде "трансформ (положение, поворот, масштаб), тип объекта (блок это, бонус, декорация и т.д.), дополнительные параметры". В общий же тип данных записывался массив таких структур, соответственно количеству объектов на уровне. После чего успешно записывался в файл одним из многих методов (я использовал бинарную сериализацию). Воспроизведение уровней, даже в игре, можно сделать точно таким же образом - десериализируете файл, получаете ваш массив объектов, и, исходя из него, создаете объекты вашего уровня.
0
|
|
|
298 / 260 / 108
Регистрация: 26.10.2012
Сообщений: 810
|
|
| 18.09.2015, 08:07 | |
|
Тут два варианта:
1. Сделать каждый уровень отдельной сценой и подгружать методами Application.LoadScene... Не совсем универсально, но удобно и для данного примера подойдет. 2. Каждый "уровень" представить группой префабов, префабы паковать как AssetBundle в отдельные файлы. Затем в процессе игры подгружать их и инстантиировать.
0
|
|
| 19.09.2015, 01:19 | ||
0
|
||
|
Быдлокодер
512 / 298 / 85
Регистрация: 22.11.2009
Сообщений: 892
|
|||||||
| 22.09.2015, 15:56 | |||||||
Если 50 уровней арканоида будут загружаться через App.LoadScene, ну кто угодно устанет ждать. А если новые уровни появятся? Всех их заносить в билд? А как удобно среди них ориентироваться в иерархии - слов нет! Короче, не вариант. "Хватит болтать", скажете вы, и будете правы. Я тут не нотации пришел читать, а предлагать решение. То, что у меня есть - это ScriptableObject, универсальный объект для хранения данных. Его не нужно держать на сцене, на него можно делать прямые ссылки и обращаться к тому, что в нем хранится. А храниться может все подряд - префабы, вектора, данные любого типа (см. скриншот). Вот вам код
0
|
|||||||
|
298 / 260 / 108
Регистрация: 26.10.2012
Сообщений: 810
|
|||
| 22.09.2015, 19:33 | |||
|
Darky
Преимущество первого метода - его простота, особенно для новичка. Не надо паковать общего в папку Resources, не надо отмечать все объекты, которые входят в "сцену", работать опять же проще. Сцена также автоматически подцепляет Lightmapping и OcclusionCulling, в варианте же с бандлами же придется на них писать свой костыль (в случае с OcclusionCulling - вообще непонятно как). Для игры из множества отдельных несвязанных уровней (случай ТС) это вполне годный вариант. Утечек памяти без причины тут не замечал. Что там еще? Размер загружаемого билда\необходимость ребилдить проект после каждого изменения сцены? Есть гибридный вариант - загружать сцены из AssetBundle. Подход работать будет, но памяти будет жрать сверх меры. Если же паковать ScriptableObject в бандлы - то получится по сути предложенный мною 2 вариант. Можно паковать ScriptableObject, можно паковать префаб со ссылкой на ScriptableObject. Сам так делаю.
0
|
|||
|
Быдлокодер
512 / 298 / 85
Регистрация: 22.11.2009
Сообщений: 892
|
||||
| 22.09.2015, 20:13 | ||||
|
0
|
||||
| 22.09.2015, 20:13 | |
|
Помогаю со студенческими работами здесь
7
Требуется определить количество уровней дерева Количество уровней вложенности классов из дочернего элемента Определить количество уровней двоичного дерева поиска Определить количество уровней подкаталогов, вывести самый глубокий Количество уровней списка с суммой, большей, чем заданное число Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|