I checked the source code and I see that the original Game Pause function actually comes from this:
UWorld* const World = GEngine->GetWorldFromContextObject( WorldContextObject );
APlayerController* const PC = World->GetFirstPlayerController();
World->GetAuthGameMode()->SetPause(PC);
As far as I see, this gets the first Player Controller (which I’m assuming it is the World’s controller) and then uses a pointer to the world to set the pause state to the whole world. However, what I want is to pause everything in the world except for a specific class I want to exclude. Is this possible? I’ve been digging through the code but I couldn’t get any answers.
But as far as I read, CustomTimeDilation cannot be set to 0 because it breaks some of the game logic the engine uses, so that’s out of question.
EDIT:
Plus, that wouldn’t make much sense, wouldn’t it? If I could set Time Dilation to 0, then I would have to set the Custom Time Dilation of the class I want to exclude to infinity.
But that’s not a solution. In UDK you could set Time Dilation to 0 and all actors would stop, but in UE4 Time Dilation cannot be set to 0. Setting it to 0 just makes time go reeeeally slow, but it’s not fully stopped.
Enabling or disabling ticking doesn’t have anything to do with enabling or disabling the rendering of actors. If I disable the ticking of an actor, it just disables the ticking event when the game is paused.
I can enable ticking in the class I want, but still, since what I want is to play an animation during pause, the animation won’t update just because I play it in the ticking event.