void UGameplayDebuggingComponent::TickComponent(float DeltaTime, enum ELevelTick TickType, FActorComponentTickFunction *ThisTickFunction) { Super::TickComponent(DeltaTime, TickType, ThisTickFunction); #if !(UE_BUILD_SHIPPING || UE_BUILD_TEST) if (World && World->GetNetMode() < NM_Client) { if (bEnabledTargetSelection) { AGameplayDebuggingReplicator* Replicator = Cast<AGameplayDebuggingReplicator>(GetOwner()); if (Replicator) { if (Replicator->GetLocalPlayerOwner()) { SelectTargetToDebug(); } } } CollectDataToReplicate(true); } AGameplayDebuggingReplicator* Replicator = Cast<AGameplayDebuggingReplicator>(GetOwner()); #endif //!(UE_BUILD_SHIPPING || UE_BUILD_TEST) }
void AGameplayDebuggerReplicator::ActivateFromCommand() { #if ENABLED_GAMEPLAY_DEBUGGER OnActivationKeyPressed(); if (GetLocalPlayerOwner()) { SelectTargetToDebug(); } OnActivationKeyReleased(); #endif }
void AGameplayDebuggerReplicator::TickActor(float DeltaTime, enum ELevelTick TickType, FActorTickFunction& ThisTickFunction) { Super::TickActor(DeltaTime, TickType, ThisTickFunction); #if ENABLED_GAMEPLAY_DEBUGGER UWorld* World = GetWorld(); const ENetMode NetMode = GetNetMode(); if (!World) { // return without world return; } UGameInstance* GameInstance = World->GetGameInstance(); if (!GameInstance || !World->IsGameWorld()) { return; } if (NetMode != NM_DedicatedServer) { if (bActivationKeyPressed) { ActivationKeyTime += DeltaTime; if (ActivationKeyTime >= GameplayDebuggerHelpers::ActivationKeyTimePch) { GEngine->bEnableOnScreenDebugMessages = false; if (AHUD* const GameHUD = LocalPlayerOwner ? LocalPlayerOwner->GetHUD() : nullptr) { GameHUD->bShowHUD = false; } BindKeyboardInput(InputComponent); ServerActivateGameplayDebugger(true); ClientActivateGameplayDebugger(true); bActivationKeyPressed = false; } } if (bEnabledTargetSelection) { if (GetLocalPlayerOwner()) { SelectTargetToDebug(); } } bool bMarkComponentsAsRenderStateDirty = false; for (UGameplayDebuggerBaseObject* Obj : ReplicatedObjects) { if (Obj && Obj->IsRenderStateDirty()) { if (!bMarkComponentsAsRenderStateDirty) { MarkComponentsRenderStateDirty(); } bMarkComponentsAsRenderStateDirty = true; Obj->CleanRenderStateDirtyFlag(); } } } if (NetMode < NM_Client && LocalPlayerOwner) { TMap<FString, TArray<UGameplayDebuggerBaseObject*> > CategoryToClasses; for (UGameplayDebuggerBaseObject* Obj : ReplicatedObjects) { if (Obj) { FString Category = Obj->GetCategoryName(); if (IsCategoryEnabled(Category)) { CategoryToClasses.FindOrAdd(Category).Add(Obj); } } } for (auto It(CategoryToClasses.CreateIterator()); It; ++It) { TArray<UGameplayDebuggerBaseObject*>& CurrentObjects = It.Value(); for (UGameplayDebuggerBaseObject* Obj : CurrentObjects) { Obj->CollectDataToReplicateOnServer(LocalPlayerOwner, LastSelectedActorToDebug); } } } #endif }