Add input bindings for Scene viewport related actions and Pilot Actor
This commit is contained in:
@@ -545,10 +545,10 @@ namespace FlaxEditor.Modules
|
||||
MenuScene = MainMenu.AddButton("Scene");
|
||||
cm = MenuScene.ContextMenu;
|
||||
cm.VisibleChanged += OnMenuSceneShowHide;
|
||||
_menuSceneMoveActorToViewport = cm.AddButton("Move actor to viewport", MoveActorToViewport);
|
||||
_menuSceneAlignActorWithViewport = cm.AddButton("Align actor with viewport", AlignActorWithViewport);
|
||||
_menuSceneAlignViewportWithActor = cm.AddButton("Align viewport with actor", AlignViewportWithActor);
|
||||
_menuScenePilotActor = cm.AddButton("Pilot actor", PilotActor);
|
||||
_menuSceneMoveActorToViewport = cm.AddButton("Move actor to viewport", inputOptions.MoveActorToViewport, MoveActorToViewport);
|
||||
_menuSceneAlignActorWithViewport = cm.AddButton("Align actor with viewport", inputOptions.AlignActorWithViewport, AlignActorWithViewport);
|
||||
_menuSceneAlignViewportWithActor = cm.AddButton("Align viewport with actor", inputOptions.AlignViewportWithActor, AlignViewportWithActor);
|
||||
_menuScenePilotActor = cm.AddButton("Pilot actor", inputOptions.PilotActor, PilotActor);
|
||||
cm.AddSeparator();
|
||||
_menuSceneCreateTerrain = cm.AddButton("Create terrain", CreateTerrain);
|
||||
|
||||
|
||||
@@ -108,6 +108,22 @@ namespace FlaxEditor.Options
|
||||
[EditorDisplay("Scene", "Run cooked game"), EditorOrder(560)]
|
||||
public InputBinding RunCookedGame = new InputBinding(KeyboardKeys.None);
|
||||
|
||||
[DefaultValue(typeof(InputBinding), "None")]
|
||||
[EditorDisplay("Scene", "Move actor to viewport"), EditorOrder(570)]
|
||||
public InputBinding MoveActorToViewport = new InputBinding(KeyboardKeys.None);
|
||||
|
||||
[DefaultValue(typeof(InputBinding), "None")]
|
||||
[EditorDisplay("Scene", "Align actor with viewport"), EditorOrder(571)]
|
||||
public InputBinding AlignActorWithViewport = new InputBinding(KeyboardKeys.None);
|
||||
|
||||
[DefaultValue(typeof(InputBinding), "None")]
|
||||
[EditorDisplay("Scene", "Align viewport with actor"), EditorOrder(572)]
|
||||
public InputBinding AlignViewportWithActor = new InputBinding(KeyboardKeys.None);
|
||||
|
||||
[DefaultValue(typeof(InputBinding), "None")]
|
||||
[EditorDisplay("Scene"), EditorOrder(573)]
|
||||
public InputBinding PilotActor = new InputBinding(KeyboardKeys.None);
|
||||
|
||||
#endregion
|
||||
|
||||
#region Debugger
|
||||
|
||||
@@ -26,6 +26,7 @@ namespace FlaxEditor.Windows
|
||||
bool hasSthSelected = Editor.SceneEditing.HasSthSelected;
|
||||
bool isSingleActorSelected = Editor.SceneEditing.SelectionCount == 1 && Editor.SceneEditing.Selection[0] is ActorNode;
|
||||
bool canEditScene = Editor.StateMachine.CurrentState.CanEditScene && Level.IsAnySceneLoaded;
|
||||
var inputOptions = Editor.Options.Options.Input;
|
||||
|
||||
// Create popup
|
||||
|
||||
@@ -44,17 +45,17 @@ namespace FlaxEditor.Windows
|
||||
|
||||
if (hasSthSelected)
|
||||
{
|
||||
contextMenu.AddButton(Editor.Windows.EditWin.IsPilotActorActive ? "Stop piloting actor" : "Pilot actor", Editor.UI.PilotActor);
|
||||
contextMenu.AddButton(Editor.Windows.EditWin.IsPilotActorActive ? "Stop piloting actor" : "Pilot actor", inputOptions.PilotActor, Editor.UI.PilotActor);
|
||||
}
|
||||
|
||||
contextMenu.AddSeparator();
|
||||
|
||||
// Basic editing options
|
||||
|
||||
b = contextMenu.AddButton("Rename", Rename);
|
||||
b = contextMenu.AddButton("Rename", inputOptions.Rename, Rename);
|
||||
b.Enabled = isSingleActorSelected;
|
||||
|
||||
b = contextMenu.AddButton("Duplicate", Editor.SceneEditing.Duplicate);
|
||||
b = contextMenu.AddButton("Duplicate", inputOptions.Duplicate, Editor.SceneEditing.Duplicate);
|
||||
b.Enabled = hasSthSelected;
|
||||
|
||||
if (isSingleActorSelected)
|
||||
@@ -116,17 +117,17 @@ namespace FlaxEditor.Windows
|
||||
}
|
||||
}
|
||||
}
|
||||
b = contextMenu.AddButton("Delete", Editor.SceneEditing.Delete);
|
||||
b = contextMenu.AddButton("Delete", inputOptions.Delete, Editor.SceneEditing.Delete);
|
||||
b.Enabled = hasSthSelected;
|
||||
|
||||
contextMenu.AddSeparator();
|
||||
|
||||
b = contextMenu.AddButton("Copy", Editor.SceneEditing.Copy);
|
||||
b = contextMenu.AddButton("Copy", inputOptions.Copy, Editor.SceneEditing.Copy);
|
||||
|
||||
b.Enabled = hasSthSelected;
|
||||
contextMenu.AddButton("Paste", Editor.SceneEditing.Paste);
|
||||
contextMenu.AddButton("Paste", inputOptions.Paste, Editor.SceneEditing.Paste);
|
||||
|
||||
b = contextMenu.AddButton("Cut", Editor.SceneEditing.Cut);
|
||||
b = contextMenu.AddButton("Cut", inputOptions.Cut, Editor.SceneEditing.Cut);
|
||||
b.Enabled = canEditScene;
|
||||
|
||||
// Prefab options
|
||||
|
||||
Reference in New Issue
Block a user