Сохраняю игру в папку Saved/SaveGames/SaveFiles.
Положение этой папки нахожу через нод Project Dir. Всё работает при старте из редактора. Но при старте в режиме Standalone Game или при старте выгруженного из UE проекта, этот нод ссылается не туда куда надо.
Я попробовал нод Launch Dir. Но при старте в режиме Standalone Game он не находит папку Saved/SaveGames/SaveFiles.
Из доступных нодов c Dir существует штук 30. Ради каждого нода выгружать игру и пробовать сработает/не сработает - потребует очень много времени.
Может ли кто-нибудь подсказать каким нодом надо пользоваться, чтобы сохранение и загрузка срабатывали во всех режимах?
ivashko
Как я понял там разные пути в зависимости от запуска и от операционной системы.
RootDir не подходит?
FString UGlobal::getGameExeFolder() { #if WITH_EDITOR FString exeDir = FPaths::RootDir( ); #else #if PLATFORM_MAC FString exeDir = FPaths::RootDir( ) + "../../../"; #else FString exeDir = FPaths::RootDir( ); #endif #endif return exeDir; }
RootDir выдаёт папку движка при запуске из редактора в любом режиме.
Что он выдаст после выгрузки проекта, пока не проверял, но уже есть дурные предчуствия. Ведь папка проекта у меня не в папке движка, а значит во время запуска из редактора это не сработает.
Подозрение пало на нод Project Saved Dir. Пока проверю эту гипотезу.
В список подозреваемых так же попали:
- Get Project Saved Dir
- Game Agnostic Saved Dir
- Engine Saved Dir
В ходе следствия выяснилось, что это был нод именуемый Project Saved Dir. Считаю целесообразным следственные действия прекратить, а остальных подозреваемых отпустить под подписку о невыезде.
ЗЫ впрочем на выгруженном проекте пока не проверял.