using UnityEngine; using VRShopping.Shopping; namespace VRShopping.UI { public class ShoppingOrderView : MonoBehaviour { [SerializeField] private ShoppingOrderList _orderList; [SerializeField] private ShoppingOrderRow _rowPrefab; [SerializeField] private Transform _rowContainer; [SerializeField] private Animator _anim; [SerializeField] private GameObject _paper; public ShoppingOrderList OrderList => _orderList; private bool _visibleShoppingOrderList = false; private void Start() { Rebuild(); } // 런타임에 미션 목록 교체 (MissionGenerator에서 호출) public void SetOrderList(ShoppingOrderList orderList) { _orderList = orderList; Rebuild(); } public void Rebuild() { if (_orderList == null || _rowPrefab == null || _rowContainer == null) return; for (int i = _rowContainer.childCount - 1; i >= 0; i--) { Destroy(_rowContainer.GetChild(i).gameObject); } foreach (var entry in _orderList.Entries) { var row = Instantiate(_rowPrefab, _rowContainer); row.Bind(entry); } } public async Awaitable ToggleShoppingOrderList() { _visibleShoppingOrderList = !_visibleShoppingOrderList; await OnOffShoppingOrderList(_visibleShoppingOrderList); } private async Awaitable OnOffShoppingOrderList(bool isOn) { if(isOn) { _paper.SetActive(true); _anim.SetTrigger("OnVisibleShoppingOrderListTrigger"); } else { _anim.SetTrigger("OffVisibleShoppingOrderListTrigger"); await Util.RunDelayed(1f,()=>{ _paper.SetActive(false); }); } } } }