Add auto-select for spawned actors in the level

This commit is contained in:
Wojtek Figat
2021-02-01 16:21:05 +01:00
parent c3d9c52f1f
commit 1ae898918c
2 changed files with 12 additions and 6 deletions

View File

@@ -200,7 +200,8 @@ namespace FlaxEditor.Modules
/// </summary>
/// <param name="actor">The actor.</param>
/// <param name="parent">The parent actor. Set null as default.</param>
public void Spawn(Actor actor, Actor parent = null)
/// <param name="autoSelect">True if automatically select the spawned actor, otherwise false.</param>
public void Spawn(Actor actor, Actor parent = null, bool autoSelect = true)
{
bool isPlayMode = Editor.StateMachine.IsPlayMode;
@@ -225,7 +226,15 @@ namespace FlaxEditor.Modules
actorNode.PostSpawn();
// Create undo action
var action = new DeleteActorsAction(new List<SceneGraphNode>(1) { actorNode }, true);
IUndoAction action = new DeleteActorsAction(new List<SceneGraphNode>(1) { actorNode }, true);
if (autoSelect)
{
var before = Selection.ToArray();
Selection.Clear();
Selection.Add(actorNode);
OnSelectionChanged();
action = new MultiUndoAction(action, new SelectionChangeAction(before, Selection.ToArray(), OnSelectionUndo));
}
Undo.AddAction(action);
// Mark scene as dirty

View File

@@ -183,11 +183,8 @@ namespace FlaxEditor.Tools.Foliage
actor.StaticFlags = StaticFlags.FullyStatic;
actor.Name = "Foliage";
// Spawn
// Spawn and select
Editor.SceneEditing.Spawn(actor);
// Select
Editor.SceneEditing.Select(actor);
}
private void OnSelectionChanged()