Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
7 / 6 / 1
Регистрация: 13.08.2019
Сообщений: 203

Возрождение в 2D платформере

08.04.2020, 22:50. Показов 3376. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть уровень, там есть триггер смерти при соприкосновении с которым персонаж умирает. При возрождении персонаж просто переносится в начало уровня. Такое возрождение меня вполне устраивает, но есть одно НО. При возрождении персонажа все объекты на сцене должны возвращаться в своё исходное положение. И поэтому все объекты(почти) нужно добавлять в скрипт возрождения и ставить в исходное положение. И поэтому скрипт возрождения по сравнению с другими получается довольно нагруженным(так как как в нём практически все объекты сцены). Можно ли это как то оптимизировать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.04.2020, 22:50
Ответы с готовыми решениями:

Возрождение
Всем привет! Недавно, я вспомнил, что у меня была машинка с 64 MB RAM, 20 GB ROM и первым пеньком. Решил я его возродить... Но тут встал...

''ProgMan'' - возрождение.....
делаю так h := FindWindow('ProgMan',0); SendMessage(h,WM_DESTROY,0,0); вопрос(1) : как восстановить рабочий стол? ...

Возрождение старого сайта
Доброго времени суток! Пишет чайник из чайников, всвязи со сменой рода деятельности. Надеюсь на понимание и помощь-) Ситуация...

6
 Аватар для MrFelix
75 / 53 / 25
Регистрация: 08.03.2020
Сообщений: 243
08.04.2020, 22:53
А в чём проблема при смерти просто перезагрузить сцену? Одной стройкой всё вернётся в исходное положение.
0
7 / 6 / 1
Регистрация: 13.08.2019
Сообщений: 203
08.04.2020, 23:24  [ТС]
MrFelix,
Цитата Сообщение от MrFelix Посмотреть сообщение
На месте начала прохождения ставишь пустой объект, когда герой умирает, удаляй объект героя со сцены через destroy, далее из префаба создаёшь нового героя в координатах пустого объекта, игровую камеру сразу или жёстко переносишь в эти координаты onject.position = Vector3.MoveTowards(start.position, end.position, time); или с помощью onject.position = Vector3.Lerp(start.position, end.position, time);
Либо, чтобы не возиться с префабами, текущего героя после смерти телепортируешь в новые координаты.
Вот тебе пример https://www.youtube.com/watch?v=nBgdpNWYs9g
Так мы с вами эту тему уже обсуждали)

Добавлено через 2 минуты
MrFelix, я всё так и сделал просто перенёс персонажа обратно в начало уровня, так как чекпоинтов на уровне нету.
0
 Аватар для MrFelix
75 / 53 / 25
Регистрация: 08.03.2020
Сообщений: 243
08.04.2020, 23:33
Тогда в чем сейчас вопрос? В предыдущей теме вопрос был возводится с определённого места на уровне и решение выше было для него.

Добавлено через 3 минуты
И зачем отдельная тема, из за которой теряется цепочка отвела?)
0
7 / 6 / 1
Регистрация: 13.08.2019
Сообщений: 203
08.04.2020, 23:35  [ТС]
MrFelix, опять же повторюсь меня эта система полностью устраивает, вопрос в том
Цитата Сообщение от Puk999 Посмотреть сообщение
Можно ли это как то оптимизировать?
0
 Аватар для MrFelix
75 / 53 / 25
Регистрация: 08.03.2020
Сообщений: 243
09.04.2020, 07:48
Создать пустой родительский объект, в него добавить все объекты, которым нужно восстанавливать позиции после смерти.
На родительский объект вешаем скрипт и при старте игры с помощью цикла собираем координаты всех объектов в массив, при смерти героя с помощью цикла восстанавливаем координаты всем дочерним объектам.

И того: 2 массива и 2 цикла

Добавлено через 21 минуту
Но если не нужно ставить героя в определённые координаты, то проще и быстрее перезапустить сцену и не париться.

Как вариант если даже нужно ставить героя в определённое место героя после смерти, чтобы не париться с циклами и уборкой на уровне, в плейерпрефс сохраняем координату, куда нужно поставить героя и при старте сцены получаем значение и ставим героя.
Только не забудь, что если игра начинается скажем с главного меню, то обнуляем эту координату на сцене выбора уровня, главного меню или что, там есть у тебя ).
1
7 / 6 / 1
Регистрация: 13.08.2019
Сообщений: 203
09.04.2020, 23:57  [ТС]
MrFelix, сделал перезагрузку сцены, во первых так гораздо меньше возни, во вторых 1 строчкой кода всё решено, единственная проблема(из за чего соответственно я и не делал перезагрузку) в том, что вначале уровня у меня идёт текст, который при каждом возрождении придётся читать. И это так сказать не очень. Но я решил эту проблему. Создал static bool которая равняется true и даже при перезагрузке уровня не изменяется. Если игрок возрождается, то ей присваивается значение false. Если же она равняется false то текст просто становится невидимым, но если игрок решил выйти с уровня в главное меню, меню уровней и тд, тогда переменная опять становится true. Тогда если игрок захочет зайти в уровень уже с главного меню то он опять будет с текстом.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.04.2020, 23:57
Помогаю со студенческими работами здесь

Svchost.exe : Возрождение
Второй раз уже svchost.exe попадает на мой ноут, но этот наглее. Он запускается от имени пользователя и не закрывается при запуске...

Возрождение Delphi или реклама?
Может ли Делфи конкурировать с С# или Java после выхода последних версий Delphi 10 Seattle.....Delphi 10.1 Berlin ? Или все новшества Делфи...

Возрождение старой мат. платы ATC 6220
Всем привет! С новым годом! Достал я тут из чулана старую материнку 98 года ATC-6220, решил ее оживить. Хочу поставить линукс puppy или...

Возрождение удалённого сайта на другом домене или на прежнем
Добрый вечер! Был когда-то сайт на domainname1, затем он был отключен на несколько лет. Теперь сайт планируется разместить снова, но не...

Столкновения в платформере
Не получается написать нормальное столкновение для стен. То игрок застревает в них, то вообще проходит насквозь. Как можно решить эту...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru