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()
{