some c++ change,fix that bug
UniversalObjectLocatorFragment.cpp
static bool bReisgerObjectSystemReady = false;
bool FUniversalObjectLocatorFragment::Serialize(FArchive& Ar)
{
using namespace UE::UniversalObjectLocator;
if (Ar.IsLoading())
{
FName FragmentTypeID;
Ar << FragmentTypeID;
if (FragmentTypeID == NAME_None)
{
Reset();
}
else
{
if (bReisgerObjectSystemReady == false)
{
bReisgerObjectSystemReady = true;
FDelayedAutoRegisterHelper::RunAndClearDelayedAutoRegisterDelegates(EDelayedRegisterRunPhase::ObjectSystemReady);
}
DelayedAutoRegister.cpp
void FDelayedAutoRegisterHelper::RunAndClearDelayedAutoRegisterDelegates(EDelayedRegisterRunPhase Phase)
{
UE_LOG(LogTemp,Log,TEXT(“RunAndClearDelayedAutoRegisterDelegates EDelayedRegisterRunPhase:%d”), Phase);
//checkf(!GPhasesAlreadyRun.Contains(Phase), TEXT(“Delayed Startup phase %d has already run - it is not expected to be run again!”), (int32)Phase);
if (!GPhasesAlreadyRun.Contains(Phase))
{
// run all the delayed functions!
GetDelayedAutoRegisterDelegate(Phase).Broadcast();
GetDelayedAutoRegisterDelegate(Phase).Clear();
GPhasesAlreadyRun.Add(Phase);
}
}