Files
plugin-library/Assets/00.StaryEvo/~Samples/Runtime/CounterApp/Script/CounterViewController.cs
2025-03-31 11:19:27 +08:00

53 lines
1.4 KiB
C#

using UnityEngine;
using UnityEngine.UI;
namespace Stary.Evo.Example.Counter
{
public class CounterViewController : MonoBehaviour, IController
{
private Text _countText;
private ICounterData mCounterData;
void Start()
{
// 获取
mCounterData = this.GetData<ICounterData>();
mCounterData.Count.Register(UpdateView);
_countText = transform.Find("CountText").GetComponent<Text>();
_countText.text = mCounterData.Count.Value.ToString();
transform.Find("ButtonAdd").GetComponent<Button>()
.onClick.AddListener(() =>
{
// 交互逻辑
this.SendCommand<CommandAnd>();
});
transform.Find("ButtonSub").GetComponent<Button>()
.onClick.AddListener(() =>
{
// 交互逻辑
this.SendCommand<CommandSub>();
});
}
//表现逻辑
void UpdateView(int countValue)
{
_countText.text = countValue.ToString();
}
private void OnDestroy()
{
mCounterData.Count.Register(UpdateView);
mCounterData = null;
}
IArchitecture IBelongToArchitecture.GetArchitecture()
{
return CounterApp.Interface;
}
}
}