diff --git a/Source/Editor/CustomEditors/Dedicated/ActorEditor.cs b/Source/Editor/CustomEditors/Dedicated/ActorEditor.cs index 3f41bb9a6..606cd3cc0 100644 --- a/Source/Editor/CustomEditors/Dedicated/ActorEditor.cs +++ b/Source/Editor/CustomEditors/Dedicated/ActorEditor.cs @@ -47,7 +47,8 @@ namespace FlaxEditor.CustomEditors.Dedicated public override void Initialize(LayoutElementsContainer layout) { // Check for prefab link - if (Values.IsSingleObject && Values[0] is Actor actor && actor.HasPrefabLink) + var actor = Values.Count == 1 ? Values[0] as Actor : null; + if (actor != null && actor.HasPrefabLink) { // TODO: consider editing more than one instance of the same prefab asset at once @@ -91,6 +92,8 @@ namespace FlaxEditor.CustomEditors.Dedicated { if (layout.Children[i] is GroupElement group && group.Panel.HeaderText == "General") { + if (actor != null) + group.Panel.TooltipText = Surface.SurfaceUtils.GetVisualScriptTypeDescription(TypeUtils.GetObjectType(actor)); const float settingsButtonSize = 14; var settingsButton = new Image { diff --git a/Source/Editor/SceneGraph/GUI/ActorTreeNode.cs b/Source/Editor/SceneGraph/GUI/ActorTreeNode.cs index 6d4c34a6c..f403a7081 100644 --- a/Source/Editor/SceneGraph/GUI/ActorTreeNode.cs +++ b/Source/Editor/SceneGraph/GUI/ActorTreeNode.cs @@ -201,6 +201,21 @@ namespace FlaxEditor.SceneGraph.GUI base.Update(deltaTime); } + + /// + protected override bool ShowTooltip => true; + + /// + public override bool OnShowTooltip(out string text, out Vector2 location, out Rectangle area) + { + // Evaluate tooltip text once it's actually needed + var actor = _actorNode.Actor; + if (string.IsNullOrEmpty(TooltipText) && actor) + TooltipText = Surface.SurfaceUtils.GetVisualScriptTypeDescription(TypeUtils.GetObjectType(actor)); + + return base.OnShowTooltip(out text, out location, out area); + } + /// protected override Color CacheTextColor() {