using UnityEngine; using UnityEngine.UI; namespace SpecialMoveCards { /// /// Simple UI binder for two pocket slots using two Image components. /// public class UIController_Pocket : MonoBehaviour { [Header("Images")] public Image slot1Image; public Image slot2Image; // We'll draw card sprites on separate child Images so the assigned slot Images // can remain as the background visuals. private Image slot1Content; private Image slot2Content; private void Awake() { EnsureContentImage(ref slot1Content, slot1Image, "CardContent1"); EnsureContentImage(ref slot2Content, slot2Image, "CardContent2"); } private static void EnsureContentImage(ref Image content, Image baseImage, string name) { if (content != null || baseImage == null) return; var go = new GameObject(name, typeof(RectTransform)); var rt = go.GetComponent(); rt.SetParent(baseImage.transform, worldPositionStays: false); rt.anchorMin = Vector2.zero; rt.anchorMax = Vector2.one; rt.offsetMin = Vector2.zero; rt.offsetMax = Vector2.zero; content = go.AddComponent(); content.raycastTarget = false; // let background handle clicks if needed content.preserveAspect = true; content.enabled = false; // hidden until a card is present // Ensure content renders on top of the background go.transform.SetAsLastSibling(); } public void UpdateUI(CardData[] cards) { // Make sure content images exist (in case references were added at runtime) if (slot1Content == null && slot1Image != null) EnsureContentImage(ref slot1Content, slot1Image, "CardContent1"); if (slot2Content == null && slot2Image != null) EnsureContentImage(ref slot2Content, slot2Image, "CardContent2"); // Slot 1 content (background image stays untouched) if (slot1Content) { if (cards != null && cards.Length > 0 && cards[0] != null) { slot1Content.enabled = true; slot1Content.sprite = cards[0].icon; slot1Content.color = cards[0].color; } else { // No card: hide only the content sprite; keep background visible slot1Content.sprite = null; slot1Content.enabled = false; } } // Slot 2 content (background image stays untouched) if (slot2Content) { if (cards != null && cards.Length > 1 && cards[1] != null) { slot2Content.enabled = true; slot2Content.sprite = cards[1].icon; slot2Content.color = cards[1].color; } else { // No card: hide only the content sprite; keep background visible slot2Content.sprite = null; slot2Content.enabled = false; } } } } }