C承载着数据的修改,逻辑的编写,也应该是项目最重的部分。
这里我们访问数据就直接用单例访问,反馈UI的话则通过事件。
C端的示例代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// 逻辑控制中心
/// 即为MVC的C层
/// </summary>
public class EnemyControl : MonoSingleton<EnemyControl>
{
private void Awake()
{
Init();
}
void Start()
{
//获取数据
Data.Instance.ReadBloodVolume();
}
/// <summary>
/// 初始化绑定事件
/// </summary>
void Init()
{
Event.Instance.AddEventListener("OnClickAddBloodButton", AddBlood);
Event.Instance.AddEventListener("OnClickSubtractBloodButton", SubtractBlood);
Event.Instance.AddEventListener("OnInstanceMainPanel", RefreshBloodVolume);
Data.Instance.OnBloodVolumeChanged += RefreshBloodVolume;
}
/// <summary>
/// 加血逻辑
/// </summary>
public void AddBlood()
{
Data.Instance.BloodVolume += UnityEngine.Random.Range(1, 10);
}
/// <summary>
/// 掉血逻辑
/// </summary>
public void SubtractBlood()
{
Data.Instance.BloodVolume -= UnityEngine.Random.Range(1, 10);
}
/// <summary>
/// 刷新血量
/// </summary>
public void RefreshBloodVolume()
{
Event.Instance.EventTrigger("RefreshBloodVolumeText", Data.Instance.BloodVolume);
}
}