From 210bac1ef04c9a1d6c17b547a1054d3053a093a8 Mon Sep 17 00:00:00 2001 From: madratman Date: Mon, 4 Nov 2019 13:23:06 -0800 Subject: [PATCH] [simPause fix]pause unreal engine with SetGamePaused --- .../Plugins/AirSim/Source/SimMode/SimModeWorldBase.cpp | 3 ++- .../Vehicles/ComputerVision/SimModeComputerVision.cpp | 10 ++++++++++ .../Vehicles/ComputerVision/SimModeComputerVision.h | 2 ++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/Unreal/Plugins/AirSim/Source/SimMode/SimModeWorldBase.cpp b/Unreal/Plugins/AirSim/Source/SimMode/SimModeWorldBase.cpp index 5fa2861581..4c44a3c3cd 100644 --- a/Unreal/Plugins/AirSim/Source/SimMode/SimModeWorldBase.cpp +++ b/Unreal/Plugins/AirSim/Source/SimMode/SimModeWorldBase.cpp @@ -33,6 +33,7 @@ void ASimModeWorldBase::startAsyncUpdator() { physics_world_->startAsyncUpdator(); } + void ASimModeWorldBase::stopAsyncUpdator() { physics_world_->stopAsyncUpdator(); @@ -78,12 +79,12 @@ bool ASimModeWorldBase::isPaused() const void ASimModeWorldBase::pause(bool is_paused) { physics_world_->pause(is_paused); + UGameplayStatics::SetGamePaused(this->GetWorld(), is_paused); } void ASimModeWorldBase::continueForTime(double seconds) { physics_world_->continueForTime(seconds); - } void ASimModeWorldBase::updateDebugReport(msr::airlib::StateReporterWrapper& debug_reporter) diff --git a/Unreal/Plugins/AirSim/Source/Vehicles/ComputerVision/SimModeComputerVision.cpp b/Unreal/Plugins/AirSim/Source/Vehicles/ComputerVision/SimModeComputerVision.cpp index c59817a885..b87d5170cc 100644 --- a/Unreal/Plugins/AirSim/Source/Vehicles/ComputerVision/SimModeComputerVision.cpp +++ b/Unreal/Plugins/AirSim/Source/Vehicles/ComputerVision/SimModeComputerVision.cpp @@ -75,4 +75,14 @@ msr::airlib::VehicleApiBase* ASimModeComputerVision::getVehicleApi(const PawnSim { //we don't have real vehicle so no vehicle API return nullptr; +} + +bool ASimModeComputerVision::isPaused() const +{ + return UGameplayStatics::IsGamePaused(this->GetWorld()); +} + +void ASimModeComputerVision::pause(bool is_paused) +{ + UGameplayStatics::SetGamePaused(this->GetWorld(), is_paused); } \ No newline at end of file diff --git a/Unreal/Plugins/AirSim/Source/Vehicles/ComputerVision/SimModeComputerVision.h b/Unreal/Plugins/AirSim/Source/Vehicles/ComputerVision/SimModeComputerVision.h index 4e2a08f74e..8fc0638055 100644 --- a/Unreal/Plugins/AirSim/Source/Vehicles/ComputerVision/SimModeComputerVision.h +++ b/Unreal/Plugins/AirSim/Source/Vehicles/ComputerVision/SimModeComputerVision.h @@ -30,4 +30,6 @@ class AIRSIM_API ASimModeComputerVision : public ASimModeBase const PawnSimApi::Params& pawn_sim_api_params) const override; virtual msr::airlib::VehicleApiBase* getVehicleApi(const PawnSimApi::Params& pawn_sim_api_params, const PawnSimApi* sim_api) const override; + virtual bool isPaused() const override; + virtual void pause(bool is_paused) override; };