Fix actors spawning in prefab editor

This commit is contained in:
Wojtek Figat
2023-05-05 14:18:32 +02:00
parent ec2226f06e
commit 3a3e8e2ad5
4 changed files with 13 additions and 17 deletions

View File

@@ -336,7 +336,7 @@ namespace FlaxEditor.SceneGraph.Actors
StaticFlags = Actor.StaticFlags,
Transform = Actor.Transform,
};
Editor.Instance.SceneEditing.Spawn(actor, Actor);
Root.Spawn(actor, Actor);
}
private void OnAddSplineCollider()
@@ -347,7 +347,7 @@ namespace FlaxEditor.SceneGraph.Actors
Transform = Actor.Transform,
};
// TODO: auto pick the collision data if already using spline model
Editor.Instance.SceneEditing.Spawn(actor, Actor);
Root.Spawn(actor, Actor);
}
private void OnAddSplineRopeBody()
@@ -357,7 +357,7 @@ namespace FlaxEditor.SceneGraph.Actors
StaticFlags = StaticFlags.None,
Transform = Actor.Transform,
};
Editor.Instance.SceneEditing.Spawn(actor, Actor);
Root.Spawn(actor, Actor);
}
internal static void OnSplineEdited(Spline spline)

View File

@@ -43,7 +43,7 @@ namespace FlaxEditor.SceneGraph.Actors
StaticFlags = Actor.StaticFlags,
Transform = Actor.Transform,
};
Editor.Instance.SceneEditing.Spawn(actor, Actor);
Root.Spawn(actor, Actor);
return;
}
if (modelPath.EndsWith("/Primitives/Sphere.flax", StringComparison.Ordinal))
@@ -53,7 +53,7 @@ namespace FlaxEditor.SceneGraph.Actors
StaticFlags = Actor.StaticFlags,
Transform = Actor.Transform,
};
Editor.Instance.SceneEditing.Spawn(actor, Actor);
Root.Spawn(actor, Actor);
return;
}
if (modelPath.EndsWith("/Primitives/Plane.flax", StringComparison.Ordinal))
@@ -64,7 +64,7 @@ namespace FlaxEditor.SceneGraph.Actors
Transform = Actor.Transform,
Size = new Float3(100.0f, 100.0f, 1.0f),
};
Editor.Instance.SceneEditing.Spawn(actor, Actor);
Root.Spawn(actor, Actor);
return;
}
if (modelPath.EndsWith("/Primitives/Capsule.flax", StringComparison.Ordinal))
@@ -91,7 +91,7 @@ namespace FlaxEditor.SceneGraph.Actors
Transform = Actor.Transform,
CollisionData = collisionData,
};
Editor.Instance.SceneEditing.Spawn(actor, Actor);
Root.Spawn(actor, Actor);
};
var collisionDataProxy = (CollisionDataProxy)Editor.Instance.ContentDatabase.GetProxy<CollisionData>();
collisionDataProxy.CreateCollisionDataFromModel(model, created);

View File

@@ -629,7 +629,7 @@ namespace FlaxEditor.SceneGraph.GUI
actor.StaticFlags = spawnParent.StaticFlags;
actor.Name = item.ShortName;
actor.Transform = spawnParent.Transform;
Editor.Instance.SceneEditing.Spawn(actor, spawnParent, false);
ActorNode.Root.Spawn(actor, spawnParent);
actor.OrderInParent = newOrder;
}
result = DragDropEffect.Move;
@@ -640,8 +640,6 @@ namespace FlaxEditor.SceneGraph.GUI
for (int i = 0; i < _dragActorType.Objects.Count; i++)
{
var item = _dragActorType.Objects[i];
// Create actor
var actor = item.CreateInstance() as Actor;
if (actor == null)
{
@@ -651,8 +649,6 @@ namespace FlaxEditor.SceneGraph.GUI
actor.StaticFlags = Actor.StaticFlags;
actor.Name = item.Name;
actor.Transform = Actor.Transform;
// Spawn
ActorNode.Root.Spawn(actor, Actor);
}

View File

@@ -298,13 +298,13 @@ namespace FlaxEditor.Windows.Assets
}
// Custom options
bool showCustomNodeOptions = Editor.SceneEditing.Selection.Count == 1;
if (!showCustomNodeOptions && Editor.SceneEditing.Selection.Count != 0)
bool showCustomNodeOptions = Selection.Count == 1;
if (!showCustomNodeOptions && Selection.Count != 0)
{
showCustomNodeOptions = true;
for (int i = 1; i < Editor.SceneEditing.Selection.Count; i++)
for (int i = 1; i < Selection.Count; i++)
{
if (Editor.SceneEditing.Selection[0].GetType() != Editor.SceneEditing.Selection[i].GetType())
if (Selection[0].GetType() != Selection[i].GetType())
{
showCustomNodeOptions = false;
break;
@@ -313,7 +313,7 @@ namespace FlaxEditor.Windows.Assets
}
if (showCustomNodeOptions)
{
Editor.SceneEditing.Selection[0].OnContextMenu(contextMenu);
Selection[0].OnContextMenu(contextMenu);
}
ContextMenuShow?.Invoke(contextMenu);