You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
Control Rig: Update default objects for gizmo library changes in Postload
#rb jack.cai #jira UE-132742 #preflight https://horde.devtools.epicgames.com/job/617820a158a3a900017f493e #ROBOMERGE-AUTHOR: helge.mathee #ROBOMERGE-SOURCE: CL 17930952 in //UE5/Release-5.0/... via CL 17930997 #ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v885-17909292) #ROBOMERGE[STARSHIP]: UE5-Main [CL 17931040 by helge mathee in ue5-release-engine-test branch]
This commit is contained in:
@@ -511,18 +511,21 @@ void UControlRigBlueprint::PostLoad()
|
||||
}
|
||||
|
||||
// upgrade the gizmo libraries to shape libraries
|
||||
if(GizmoLibrary_DEPRECATED.IsValid())
|
||||
{
|
||||
ShapeLibraries.Reset();
|
||||
ShapeLibraries.Add(GizmoLibrary_DEPRECATED);
|
||||
GizmoLibrary_DEPRECATED.Reset();
|
||||
}
|
||||
else if (GetLinkerCustomVersion(FControlRigObjectVersion::GUID) < FControlRigObjectVersion::RenameGizmoToShape)
|
||||
if(GizmoLibrary_DEPRECATED.IsValid() || GetLinkerCustomVersion(FControlRigObjectVersion::GUID) < FControlRigObjectVersion::RenameGizmoToShape)
|
||||
{
|
||||
// if it's an older file and it doesn't have the GizmoLibrary stored,
|
||||
// refer to the previous default.
|
||||
ShapeLibraries.Reset();
|
||||
ShapeLibraries.Add(LoadObject<UControlRigShapeLibrary>(nullptr, TEXT("/ControlRig/Controls/DefaultGizmoLibrary.DefaultGizmoLibrary")));
|
||||
|
||||
if(GizmoLibrary_DEPRECATED.IsValid())
|
||||
{
|
||||
ShapeLibraries.Add(GizmoLibrary_DEPRECATED.LoadSynchronous());
|
||||
GizmoLibrary_DEPRECATED.Reset();
|
||||
}
|
||||
else
|
||||
{
|
||||
ShapeLibraries.Add(LoadObject<UControlRigShapeLibrary>(nullptr, TEXT("/ControlRig/Controls/DefaultGizmoLibrary.DefaultGizmoLibrary")));
|
||||
}
|
||||
|
||||
// also walk over all controls and check if any of them were using the "default" gizmo
|
||||
Hierarchy->ForEach<FRigControlElement>([](FRigControlElement* ControlElement) -> bool
|
||||
@@ -535,6 +538,28 @@ void UControlRigBlueprint::PostLoad()
|
||||
}
|
||||
return true;
|
||||
});
|
||||
|
||||
UControlRigBlueprintGeneratedClass* RigClass = GetControlRigBlueprintGeneratedClass();
|
||||
UControlRig* CDO = Cast<UControlRig>(RigClass->GetDefaultObject(false /* create if needed */));
|
||||
|
||||
CDO->ShapeLibraries = ShapeLibraries;
|
||||
CDO->GizmoLibrary_DEPRECATED.Reset();
|
||||
CDO->GetHierarchy()->CopyHierarchy(Hierarchy);
|
||||
CDO->Initialize(true);
|
||||
|
||||
TArray<UObject*> ArchetypeInstances;
|
||||
CDO->GetArchetypeInstances(ArchetypeInstances);
|
||||
for (UObject* Instance : ArchetypeInstances)
|
||||
{
|
||||
if (UControlRig* InstanceRig = Cast<UControlRig>(Instance))
|
||||
{
|
||||
InstanceRig->ShapeLibraries = ShapeLibraries;
|
||||
InstanceRig->GizmoLibrary_DEPRECATED.Reset();
|
||||
InstanceRig->GetHierarchy()->CopyHierarchy(Hierarchy);
|
||||
InstanceRig->Initialize(true);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#if WITH_EDITOR
|
||||
|
||||
Reference in New Issue
Block a user