最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

unity - MVC架構(gòu)簡(jiǎn)單實(shí)現(xiàn)

2023-05-27 18:06 作者:塵風(fēng)一枚  | 我要投稿

using UnityEngine;

using System;

//模型層

public class PlayerModel

{

//數(shù)據(jù)內(nèi)容

private string name;

private int level;

private int exp;

private int gold;

//屬性

public string Name { get => name; }

public int Level { get => level; }

public int Exp { get => exp; }

public int Gold { get => gold; }



//更新操作

public void AddLeve()

{

level += 1;


SavaData();

}

public void AddExp()

{

exp += 10;


if (exp >= 100)

{

exp -= 100;

level += 1;

}


SavaData();

}

public void AddGold()

{

gold += 100;


SavaData();

}



//初始化

public void Init()

{

//讀取本地?cái)?shù)據(jù)

name = PlayerPrefs.GetString("Name", "awa");

level = PlayerPrefs.GetInt("Level", 1);

exp = PlayerPrefs.GetInt("Exp", 1);

gold = PlayerPrefs.GetInt("Gold", 1);

}

//保存

public void SavaData()

{

//保存數(shù)據(jù)到本地

PlayerPrefs.SetString("Name", name);

PlayerPrefs.SetInt("Level", level);

PlayerPrefs.SetInt("Exp", exp);

PlayerPrefs.SetInt("Gold", gold);


CallUpdateEvent();

}



//建立注冊(cè)機(jī)制 用于通知所有View層去更新數(shù)據(jù)

private event Action<PlayerModel> updateEvent;

//注冊(cè)事件 一旦注冊(cè)就更新

public void AddUpdateEvent(Action<PlayerModel> action)

{

updateEvent += action;

CallUpdateEvent();

}

//通知View層更新UI

public void CallUpdateEvent()

{

updateEvent?.Invoke(this);

}



//單例模式 1.方便外面獲得Model層 2.同時(shí)保證每個(gè)Model層唯一

private static PlayerModel model;

public static PlayerModel Instance

{

get

{

if (model == null)

{

model = new PlayerModel();

model.Init();

}

return model;

}

}

}

------------------------------------------------------------

using UnityEngine;

using UnityEngine.UI;

//視圖層

public class PlayerView : MonoBehaviour

{

//需要的UI對(duì)象

public Text Name;

public Text Level;

public Text Exp;

public Text Gold;


//負(fù)責(zé)更新UI (一旦Model層有變化便會(huì)通知Controller層去調(diào)用View層方法更新UI)

public void UpdateView(PlayerModel model)

{

Name.text = " 名字:" + model.Name;

Level.text = " 等級(jí):" + model.Level;

Exp.text = " 經(jīng)驗(yàn):" + model.Exp;

Gold.text = " 貨幣:" + model.Gold;

}

}

------------------------------------------------------------

using UnityEngine;

using UnityEngine.UI;

//控制層

public class PlayerController : MonoBehaviour

{

public PlayerView m_View;


public Button AddLevel;

public Button AddExp;

public Button AddGold;


private void Start()

{

PlayerModel.Instance.AddUpdateEvent(m_View.UpdateView);

AddLevel.onClick.AddListener(PlayerModel.Instance.AddLeve);

AddExp.onClick.AddListener(PlayerModel.Instance.AddExp);

AddGold.onClick.AddListener(PlayerModel.Instance.AddGold);

}

}

unity - MVC架構(gòu)簡(jiǎn)單實(shí)現(xiàn)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
周至县| 开江县| 衡东县| 石狮市| 罗山县| 宜兴市| 依安县| 内丘县| 中江县| 修水县| 平乡县| 绩溪县| 金平| 习水县| 进贤县| 五寨县| 宁南县| 通化县| 临澧县| 桃园市| 怀宁县| 含山县| 鹤山市| 玉树县| 无锡市| 申扎县| 通许县| 长阳| 华蓥市| 商城县| 双城市| 巴南区| 洛川县| 潢川县| 灵寿县| 育儿| 苗栗县| 永丰县| 来安县| 隆化县| 读书|