diff --git a/Unreal/Plugins/AirSim/Source/SimHUD/SimHUD.cpp b/Unreal/Plugins/AirSim/Source/SimHUD/SimHUD.cpp index 29a004461f..c6ab290a38 100644 --- a/Unreal/Plugins/AirSim/Source/SimHUD/SimHUD.cpp +++ b/Unreal/Plugins/AirSim/Source/SimHUD/SimHUD.cpp @@ -354,7 +354,11 @@ void ASimHUD::initializeSubWindows() } - +FString ASimHUD::getAbsProjectDir() +{ + FString project_rel_path = FPaths::ProjectDir(); + return IFileManager::Get().ConvertToAbsolutePathForExternalAppForRead(*project_rel_path); +} // Attempts to parse the settings text from one of multiple locations. // First, check the command line for settings provided via "-s" or "--settings" arguments @@ -368,7 +372,7 @@ bool ASimHUD::getSettingsText(std::string& settingsText) || readSettingsTextFromFile(FString(msr::airlib::Settings::getExecutableFullPath("settings.json").c_str()), settingsText) || - readSettingsTextFromFile(FPaths::Combine(FPaths::ProjectDir(), FString("settings.json")), settingsText) + readSettingsTextFromFile(FPaths::Combine(getAbsProjectDir(), FString("settings.json")), settingsText) || readSettingsTextFromFile(FString(msr::airlib::Settings::Settings::getUserDirectoryFullPath("settings.json").c_str()), settingsText)); } diff --git a/Unreal/Plugins/AirSim/Source/SimHUD/SimHUD.h b/Unreal/Plugins/AirSim/Source/SimHUD/SimHUD.h index 4b0f6bd69e..1f07e2c31a 100644 --- a/Unreal/Plugins/AirSim/Source/SimHUD/SimHUD.h +++ b/Unreal/Plugins/AirSim/Source/SimHUD/SimHUD.h @@ -70,6 +70,8 @@ class AIRSIM_API ASimHUD : public AHUD bool readSettingsTextFromFile(const FString& fileName, std::string& settingsText); std::string getSimModeFromUser(); + static FString getAbsProjectDir(); + private: typedef common_utils::Utils Utils; UClass* widget_class_;