diff --git a/Runtime/Core/FUnityManager.cs b/Runtime/Core/FUnityManager.cs
index 93c2f5c..f612982 100644
--- a/Runtime/Core/FUnityManager.cs
+++ b/Runtime/Core/FUnityManager.cs
@@ -1,5 +1,6 @@
// Updated: 2025-02-14
using System.Collections.Generic;
+using System.Linq;
using UnityEngine;
using UnityEngine.UIElements;
using FUnity.Runtime.Integrations.VisualScripting;
@@ -138,6 +139,9 @@ public sealed class FUnityManager : MonoBehaviour
/// 既定で探索するポートレート要素名。
private const string PortraitElementName = "portrait";
+ /// ポートレート Image 要素に使用する既定の名前。
+ private const string PortraitImageElementName = "portrait-image";
+
/// 既定で探索するルート要素名。
private const string RootElementName = "root";
@@ -1128,13 +1132,18 @@ private void ApplyActorSprite(VisualElement element, FUnityActorData data)
return;
}
- var rootImage = element.Q("portrait-image");
- if (rootImage != null && rootImage.parent == element)
+ var root = ResolveActorRootElement(element) ?? element;
+
+ var wrongPortraitImage = root.hierarchy.Children()
+ .OfType()
+ .FirstOrDefault(img => img.name == PortraitImageElementName);
+
+ if (wrongPortraitImage != null)
{
- element.Remove(rootImage);
+ wrongPortraitImage.RemoveFromHierarchy();
}
- var portrait = element.Q(PortraitElementName);
+ var portrait = root.Q(PortraitElementName);
if (portrait == null)
{
return;
@@ -1144,7 +1153,7 @@ private void ApplyActorSprite(VisualElement element, FUnityActorData data)
var img = new Image()
{
- name = "portrait-image",
+ name = PortraitImageElementName,
scaleMode = ScaleMode.ScaleToFit,
pickingMode = PickingMode.Ignore
};