using UnityEngine; using UnityEngine.UIElements; namespace LiveOpsExamples { public class BackpackModalPanel : MonoBehaviour { [SerializeField] private PanelRenderer panelRenderer; [SerializeField] private CozyCollectorController controller; [SerializeField] private VisualTreeAsset backpackItemRowTemplate; [SerializeField] private CozyCollectorSpriteLibrary spriteLibrary; private VisualElement _root; private ScrollView _itemsScroll; private VisualElement _emptyNote; private Button _closeButton; private void OnEnable() { panelRenderer.RegisterUIReloadCallback(OnUIReload); controller.ModalChanged += ApplyVisibility; controller.BackpackChanged += Rebuild; } private void OnDisable() { panelRenderer.UnregisterUIReloadCallback(OnUIReload); controller.ModalChanged -= ApplyVisibility; controller.BackpackChanged -= Rebuild; } private void OnUIReload(PanelRenderer renderer, VisualElement root) { _root = root.Q("backpack-modal"); _itemsScroll = _root.Q("backpack-items-scroll"); _emptyNote = _root.Q("backpack-empty"); _closeButton = _root.Q