void FScriptExecutionTunnelEntry::AddTunnelTiming(const FName InstanceName, const FTracePath& TracePath, const FTracePath& InternalTracePath, const int32 ExitScriptOffset, const double Time) { TSharedPtr<FScriptPerfData> PerfData = GetPerfDataByInstanceAndTracePath(InstanceName, TracePath); const float SampleCount = PerfData->GetRawSampleCount(); PerfData->AddEventTiming(Time); PerfData->OverrideSampleCount(SampleCount); // Tick Entry points for (auto EntrySite : ChildNodes) { PerfData = EntrySite->GetPerfDataByInstanceAndTracePath(InstanceName, TracePath); PerfData->AddEventTiming(0.0); PerfData->OverrideSampleCount(SampleCount); } // Tick exit sites TSharedPtr<FScriptExecutionNode> TunnelExitNode = GetExitSite(ExitScriptOffset); if (TunnelExitNode.IsValid()) { PerfData = TunnelExitNode->GetPerfDataByInstanceAndTracePath(InstanceName, TracePath); PerfData->AddEventTiming(0.0); PerfData->OverrideSampleCount(SampleCount); PerfData = TunnelExitNode->GetPerfDataByInstanceAndTracePath(InstanceName, InternalTracePath); PerfData->AddEventTiming(0.0); } }