private void Awake() { SharedModel = new Model.ShopItems(); SharedModel.State .Subscribe(_ => UpdateView()) .AddTo(gameObject); SharedModel.AgentProducts .Subscribe(_ => UpdateView()) .AddTo(gameObject); SharedModel.ItemSubTypeProducts .Subscribe(_ => UpdateView()) .AddTo(gameObject); itemSubTypeFilter.AddOptions(new[] { ItemSubTypeFilter.All, ItemSubTypeFilter.Weapon, ItemSubTypeFilter.Armor, ItemSubTypeFilter.Belt, ItemSubTypeFilter.Necklace, ItemSubTypeFilter.Ring, ItemSubTypeFilter.Food, ItemSubTypeFilter.FullCostume, ItemSubTypeFilter.HairCostume, ItemSubTypeFilter.EarCostume, ItemSubTypeFilter.EyeCostume, ItemSubTypeFilter.TailCostume, ItemSubTypeFilter.Title, } .Select(type => type == ItemSubTypeFilter.All ? L10nManager.Localize("ALL") : ((ItemSubType)Enum.Parse(typeof(ItemSubType), type.ToString())) .GetLocalizedString()) .ToList()); itemSubTypeFilter.onValueChanged.AsObservable() .Select(index => { try { return((ItemSubTypeFilter)index); } catch { return(ItemSubTypeFilter.All); } }) .Subscribe(filter => { SharedModel.itemSubTypeFilter = filter; OnItemSubTypeFilterChanged(SharedModel.itemSubTypeFilter); }) .AddTo(gameObject); sortFilter.AddOptions(new[] { SortFilter.Class, SortFilter.CP, SortFilter.Price, } .Select(type => L10nManager.Localize($"UI_{type.ToString().ToUpper()}")) .ToList()); sortFilter.onValueChanged.AsObservable() .Select(index => { try { return((SortFilter)index); } catch { return(SortFilter.Class); } }) .Subscribe(filter => { SharedModel.sortFilter = filter; OnSortFilterChanged(SharedModel.sortFilter); }) .AddTo(gameObject); previousPageButton.OnClickAsObservable() .Subscribe(OnPreviousPageButtonClick) .AddTo(gameObject); nextPageButton.OnClickAsObservable() .Subscribe(OnNextPageButtonClick) .AddTo(gameObject); refreshButtonTouchHandler.OnClick.Subscribe(_ => { AudioController.PlayClick(); // NOTE: 아래 코드를 실행해도 아무런 변화가 없습니다. // 새로고침을 새로 정의한 후에 수정합니다. // SharedModel.ResetItemSubTypeProducts(); }).AddTo(gameObject); }
private void OnDestroy() { SharedModel.Dispose(); SharedModel = null; }