diff --git a/Source/Editor/SceneGraph/GUI/ActorTreeNode.cs b/Source/Editor/SceneGraph/GUI/ActorTreeNode.cs index 2e9aab3b4..5c87cbff6 100644 --- a/Source/Editor/SceneGraph/GUI/ActorTreeNode.cs +++ b/Source/Editor/SceneGraph/GUI/ActorTreeNode.cs @@ -625,7 +625,16 @@ namespace FlaxEditor.SceneGraph.GUI { var item = _dragAssets.Objects[i]; var actor = item.OnEditorDrop(this); - actor.StaticFlags = spawnParent.StaticFlags; + if (spawnParent.GetType() != typeof(Scene)) + { + // Set all Actors static flags to match parents + List childActors = new List(); + GetActorsTree(childActors, actor); + foreach (var child in childActors) + { + child.StaticFlags = spawnParent.StaticFlags; + } + } actor.Name = item.ShortName; actor.Transform = spawnParent.Transform; Editor.Instance.SceneEditing.Spawn(actor, spawnParent, false); @@ -670,6 +679,16 @@ namespace FlaxEditor.SceneGraph.GUI return result; } + + private void GetActorsTree(List list, Actor a) + { + list.Add(a); + int cnt = a.ChildrenCount; + for (int i = 0; i < cnt; i++) + { + GetActorsTree(list, a.GetChild(i)); + } + } private bool ValidateDragActor(ActorNode actorNode) {