69 lines
2.0 KiB
C#
69 lines
2.0 KiB
C#
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);
|
|
});
|
|
}
|
|
}
|
|
}
|
|
}
|