Как сохранить данные между уровнями в UE4?

#unreal-engine4 #unreal-blueprint

#unreal-engine4 #unreal-blueprint

Вопрос:

Я создаю систему смерти для своей игры. Игрок получает 3 жизни, и как только все 3 жизни заканчиваются, открывается экран смерти. Я столкнулся с проблемой. Мне нужно сохранить оставшиеся жизни, чтобы я мог получить к ним доступ между уровнями. Мне никогда раньше не приходилось сохранять какие-либо данные, поэтому я не уверен, как это сделать. Вот изображение моего плана системы смерти.
Схема

Ответ №1:

Существует несколько способов сохранения данных между уровнями.

1. GameInstance

GameInstance — это объект, который живет от начала до конца игрового процесса. Он не удаляется при переключении уровня. Итак, чтобы передавать некоторые данные, вы можете создать свой собственный класс GameInstance, создать свойства, необходимые для передачи между уровнями, и установить свой класс GameInstance в Настройках проекта> Карты и режимы> Экземпляр игры.

Перед переключением уровня просто установите переменную в вашем игровом экземпляре, а после переключения прочитайте ее.

https://ibb.co/DR5zS5M

https://ibb.co/FYbyzfB

https://ibb.co/vx7s2SX

2. Использование системы сохранения

С помощью системы сохранения вы просто сохраняете свой прогресс и загружаете его после переключения. Идея здесь в том, чтобы сохранить все данные с помощью SaveGameToSlot перед переключением уровня, а после него загрузить данные с помощью LoadGameFromSlot .

Однако это не элегантное решение. Это работает очень хорошо, если вы загружаете save только при запуске игры и правильно объединяете его с GameInstance, используя объект save game в качестве контейнера прогресса, чтобы вы могли сохранять прогресс и передавать его на разные уровни, используя один объект.

https://ibb.co/qndzbp6

План сохранения игры можно создать так же, как план GameInstance. Смотрите скриншоты