Fix applying prefab changes to nesting prefab instances

#1256
This commit is contained in:
Wojtek Figat
2023-09-10 21:07:41 +02:00
parent ae27d51dc6
commit 716e643f2a
4 changed files with 5 additions and 11 deletions

View File

@@ -591,7 +591,7 @@ namespace FlaxEditor.Modules
private void OnActorNameChanged(Actor actor) private void OnActorNameChanged(Actor actor)
{ {
ActorNode node = GetActorNode(actor); ActorNode node = GetActorNode(actor);
node?.TreeNode.OnNameChanged(); node?.TreeNode.UpdateText();
} }
private void OnActorActiveChanged(Actor actor) private void OnActorActiveChanged(Actor actor)

View File

@@ -97,11 +97,6 @@ namespace FlaxEditor.SceneGraph.GUI
} }
} }
internal void OnNameChanged()
{
UpdateText();
}
/// <summary> /// <summary>
/// Updates the tree node text. /// Updates the tree node text.
/// </summary> /// </summary>

View File

@@ -430,7 +430,7 @@ namespace FlaxEditor.Windows.Assets
{ {
if (actorNode.Actor) if (actorNode.Actor)
{ {
actorNode.TreeNode.OnNameChanged(); actorNode.TreeNode.UpdateText();
actorNode.TreeNode.OnOrderInParentChanged(); actorNode.TreeNode.OnOrderInParentChanged();
} }

View File

@@ -1255,20 +1255,19 @@ void Prefab::SyncNestedPrefabs(const NestedPrefabsList& allPrefabs, Array<Prefab
auto nestedPrefab = allPrefabs[i].Get(); auto nestedPrefab = allPrefabs[i].Get();
if (nestedPrefab) if (nestedPrefab)
{ {
if (WaitForLoaded()) if (nestedPrefab->WaitForLoaded())
{ {
LOG(Warning, "Waiting for prefab asset load failed."); LOG(Warning, "Waiting for prefab asset load failed.");
continue; continue;
} }
// Sync only if prefab is used by this prefab (directly) and it has been captured before
const int32 nestedPrefabIndex = nestedPrefab->NestedPrefabs.Find(GetID()); const int32 nestedPrefabIndex = nestedPrefab->NestedPrefabs.Find(GetID());
if (nestedPrefabIndex != -1) if (nestedPrefabIndex != -1)
{ {
if (nestedPrefab->SyncChangesInternal(allPrefabsInstancesData[nestedPrefabIndex])) if (nestedPrefab->SyncChangesInternal(allPrefabsInstancesData[i]))
continue; continue;
nestedPrefab->SyncNestedPrefabs(allPrefabs, allPrefabsInstancesData); nestedPrefab->SyncNestedPrefabs(allPrefabs, allPrefabsInstancesData);
ObjectsRemovalService::Flush(); ObjectsRemovalService::Flush();
} }
} }