using System.Text; using UnityEngine; using UnityEngine.UIElements; namespace LiveOpsExamples { public class ShopModalPanel : MonoBehaviour { [SerializeField] private PanelRenderer panelRenderer; [SerializeField] private CozyCollectorController controller; [SerializeField] private VisualTreeAsset shopOfferRowTemplate; private VisualElement _root; private Label _walletLabel; private ScrollView _offersScroll; private VisualElement _emptyNote; private Button _closeButton; private void OnEnable() { panelRenderer.RegisterUIReloadCallback(OnUIReload); controller.ModalChanged += ApplyVisibility; controller.ShopChanged += Rebuild; controller.WalletsChanged += RefreshWallet; } private void OnDisable() { panelRenderer.UnregisterUIReloadCallback(OnUIReload); controller.ModalChanged -= ApplyVisibility; controller.ShopChanged -= Rebuild; controller.WalletsChanged -= RefreshWallet; } private void OnUIReload(PanelRenderer renderer, VisualElement root) { _root = root.Q("shop-modal"); _walletLabel = _root.Q