룰렛 mvp 패턴 적용 중...

This commit is contained in:
2025-07-02 20:50:15 +09:00
parent 6808ca4fd7
commit 750f4173c0
5 changed files with 54 additions and 35 deletions

View File

@@ -1,33 +1,31 @@
using System.Collections;
using System;
using System.Collections;
using System.Collections.Generic;
using UniRx;
using UnityEngine;
using UnityEngine.UI;
namespace TON
{
// View
// View <> Presenter <> Model
public class RouletteSpin : MonoBehaviour
{
[SerializeField] private Roulette roulette;
[SerializeField] private Button buttonSpin;
// TODO : Roulette 변수 선언
private RoulettePresenter roulettePresenter;
private void Start()
{
// Presenter 초기화
roulettePresenter = new RoulettePresenter();
// TODO : UI와 Presenter 바인딩
}
private void Awake()
{
// // 싱글톤으로 PlayerDataManager 접근
// playerDataManager = PlayerDataManager.Singleton;
//
// if (playerDataManager == null)
// {
// Debug.LogError("PlayerDataManager가 초기화되지 않았습니다.");
// }
// TODO : Presenter 초기화
// TODO : UI와 Presenter 바인딩
buttonSpin.onClick.AddListener(()=>
{
buttonSpin.interactable = false;
@@ -42,4 +40,26 @@ namespace TON
roulettePresenter.InsertRouletteResult(selectedData);
}
}
// Presenter
public class RouletteItemPresenter
{
public ReactiveProperty<string> Description { get; set; }
public ReactiveProperty<int> Chance { get; set; }
public ReactiveCommand BuyCommand { get; set; }
private RoulettePieceData _model;
public RouletteItemPresenter(RoulettePresenter roulettePresenter, RoulettePieceData model)
{
_model = model;
Description = new ReactiveProperty<string>(model.description);
Chance = new ReactiveProperty<int>(model.chance);
BuyCommand = new ReactiveCommand();
BuyCommand.Subscribe(_ => roulettePresenter.InsertRouletteResult(this));
}
}
}