From 5b7a3f97004cb3e7215ac87c7ddaf460cac57663 Mon Sep 17 00:00:00 2001 From: ExMatics HydrogenC <33123710+HydrogenC@users.noreply.github.com> Date: Wed, 22 Nov 2023 21:52:07 +0800 Subject: [PATCH] Show skeleton when entering skeleton tab --- .../Editor/Windows/Assets/SkinnedModelWindow.cs | 15 ++++++++++++++- Source/Engine/Level/Actors/AnimatedModel.cpp | 1 + 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/Source/Editor/Windows/Assets/SkinnedModelWindow.cs b/Source/Editor/Windows/Assets/SkinnedModelWindow.cs index ccfd5233c..95827240c 100644 --- a/Source/Editor/Windows/Assets/SkinnedModelWindow.cs +++ b/Source/Editor/Windows/Assets/SkinnedModelWindow.cs @@ -371,7 +371,10 @@ namespace FlaxEditor.Windows.Assets private void OnTreeSelectedChanged(List before, List after) { if (after.Count != 0) - ((SkeletonPropertiesProxy)Values[0]).Window._preview.ShowDebugDraw = true; + { + var proxy = (SkeletonPropertiesProxy)Values[0]; + proxy.Window._preview.ShowDebugDraw = true; + } } private void OnTreeNodeCopyName(ContextMenuButton b) @@ -1045,6 +1048,7 @@ namespace FlaxEditor.Windows.Assets { Proxy = new SkeletonPropertiesProxy(); Presenter.Select(Proxy); + // Draw highlight on selected node window._preview.CustomDebugDraw += OnDebugDraw; } @@ -1146,6 +1150,15 @@ namespace FlaxEditor.Windows.Assets _tabs.AddTab(new RetargetTab(this)); _tabs.AddTab(new ImportTab(this)); + // Automatically show nodes when switching to skeleton page + _tabs.SelectedTabChanged += (tabs) => + { + if (tabs.SelectedTab is SkeletonTab) + { + _preview.ShowNodes = true; + } + }; + // Highlight actor (used to highlight selected material slot, see UpdateEffectsOnAsset) _highlightActor = new AnimatedModel { diff --git a/Source/Engine/Level/Actors/AnimatedModel.cpp b/Source/Engine/Level/Actors/AnimatedModel.cpp index 6c67620ae..c1b5af398 100644 --- a/Source/Engine/Level/Actors/AnimatedModel.cpp +++ b/Source/Engine/Level/Actors/AnimatedModel.cpp @@ -188,6 +188,7 @@ void AnimatedModel::SetNodeTransformation(int32 nodeIndex, const Matrix& nodeTra } OnAnimationUpdated(); } + void AnimatedModel::SetNodeTransformation(const StringView& nodeName, const Matrix& nodeTransformation, bool worldSpace) { SetNodeTransformation(SkinnedModel ? SkinnedModel->FindNode(nodeName) : -1, nodeTransformation, worldSpace);