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 };