diff --git a/Source/Editor/Windows/SceneTreeWindow.cs b/Source/Editor/Windows/SceneTreeWindow.cs index 999be7f94..80b709eb6 100644 --- a/Source/Editor/Windows/SceneTreeWindow.cs +++ b/Source/Editor/Windows/SceneTreeWindow.cs @@ -27,7 +27,7 @@ namespace FlaxEditor.Windows private Panel _sceneTreePanel; private bool _isUpdatingSelection; private bool _isMouseDown; - private bool _isPlayStateChanging = false; + private bool _blockSceneTreeScroll = false; private DragAssets _dragAssets; private DragActorType _dragActorType; @@ -94,10 +94,10 @@ namespace FlaxEditor.Windows _tree.Parent = _sceneTreePanel; headerPanel.Parent = this; - Editor.PlayModeBeginning += () => _isPlayStateChanging = true; - Editor.PlayModeBegin += () => _isPlayStateChanging = false; - Editor.PlayModeEnding += () => _isPlayStateChanging = true; - Editor.PlayModeEnd += () => _isPlayStateChanging = false; + Editor.PlayModeBeginning += () => _blockSceneTreeScroll = true; + Editor.PlayModeBegin += () => _blockSceneTreeScroll = false; + Editor.PlayModeEnding += () => _blockSceneTreeScroll = true; + Editor.PlayModeEnd += () => _blockSceneTreeScroll = false; // Setup input actions InputActions.Add(options => options.TranslateMode, () => Editor.MainTransformGizmo.ActiveMode = TransformGizmoBase.Mode.Translate); @@ -256,7 +256,7 @@ namespace FlaxEditor.Windows _tree.Select(nodes); // For single node selected scroll view so user can see it - if (nodes.Count == 1 && !_isPlayStateChanging) + if (nodes.Count == 1 && !_blockSceneTreeScroll) { nodes[0].ExpandAllParents(true); _sceneTreePanel.ScrollViewTo(nodes[0]); @@ -266,6 +266,12 @@ namespace FlaxEditor.Windows _isUpdatingSelection = false; } + /// + public override void OnEditorStateChanged() + { + _blockSceneTreeScroll = Editor.StateMachine.ReloadingScriptsState.IsActive; + } + private bool ValidateDragAsset(AssetItem assetItem) { if (assetItem.IsOfType())