您的位置:首页 > 健康 > 美食 > 友情链接有什么用_今天新闻事件_班级优化大师客服电话_海南百度推广公司有哪些

友情链接有什么用_今天新闻事件_班级优化大师客服电话_海南百度推广公司有哪些

2025/4/2 22:19:00 来源:https://blog.csdn.net/m0_74236534/article/details/146483462  浏览:    关键词:友情链接有什么用_今天新闻事件_班级优化大师客服电话_海南百度推广公司有哪些
友情链接有什么用_今天新闻事件_班级优化大师客服电话_海南百度推广公司有哪些
(旧的)代码实现方法

        一个功能模块的代码逻辑(显示处理,数据处理,逻辑判定)都写在一起(耦合)

(新的)代码MVC分层实现方法

        显示部分实现(View视图)

        数据处理实现(Model数据模型)

        逻辑判定实现(Controller控制器)

    图片来源:视频课程截图 

MVC是什么:

        C:控制器,负责流程控制和事件响应

        V:视图,负责图形交互

        M:数据模型,负责数据处理

MVC的开发步骤:

        1.页面预制体制作

        2.处理数据(数据模型脚本)

                JSON读写操作

                数据的CURD操作

                        C:Create增加数据

                        U:Update修改数据

                        R:Read读取数据

                        D:Delete删除数据

                根据控制器调用模型的方式数量,在模型中编写对应数量的函数,以供调用

        3.显示(视图脚本)

                文本的显示

                图片的显示

                列表的显示

                其他美术资源(模型,动作特效)

        4.逻辑控制(控制器脚本)

                生命周期函数

                逻辑控制语句

                事件响应

使用MVC分层开发思想的示例代码:

using UnityEngine;
using UnityEngine.UI;
using LitJson;
using System.IO;//原无MVC开发思想代码
public class UIMainMenu:MonoBehaviour{private Text GoldCount;public void Start(){//找到Text子物体GoldCount=transform.Find("HeaderCount/Gold/Count").GetComponent<Text>();//通过路径找子物体transform.Find("HeaderCount/Gold/Add").GetComponent<Button>().onClick.AddListener(GoldAddClick);//将JSON文件中的数据,读取出来,显示在页面上//进入页面,就检查JSON文件是否存在if(!File.Exists(Config.UserNumericalJsonFile)){//处理JSON数据JsonData d = new JsonData();d["GoldCount"]=0;File.WriteAllText(Config.UserNumericalJsonFile,d.ToJson());}else{//将已有的数据读取出来,并显示在UI上string json=File.ReadAllText(Config.UserNumericalJsonFile)JsonData d=JsonMapper.ToObject(json);GoldCount.text=d["GoldCount"].ToString();}}public void GoldAddClick(){//读取数据string json=File.ReadAllText(Config.UserNumericalJsonFile);JsonData d = JsonMapper.ToObject(json);//增加金币数1d["GoldCount"]=(int)d["GoldCount"]+1;//更新显示部分(Text)GoldCount.text=d["GoldCount"].ToString();//更新JSON数据(JSON)File.WriteAllText(Config.UserNumericalJsonFile,d.ToJson());}
} using System.Collections;
using System.Collections.Generic;
using UnityEngine;public static class Config
{public static string UserNumericalJsonFile=Application.persistentDataPath+"/UserNumerical.json"; 
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using LitJson;//模型层
public static class UserDataModel
{//创建新的用户数据public static void CreateNew(){if(!File.Exists(Config.UserNumericalJsonFile)){//处理JSON数据JsonData d = new JsonData();d["GoldCount"]=0;File.WriteAllText(Config.UserNumericalJsonFile,d.ToJson());}}//读取用户数据public static JsonData ReadAllData(){//将已有的数据读取出来,并显示在UI上string json=File.ReadAllText(Config.UserNumericalJsonFile)return JsonMapper.ToObject(json);}//更新金币数public static JsonData UpdateGold(int count){//获取原来json文件中的值string json=File.ReadAllText(Config.UserNumericalJsonFile);JsonData d = JsonMapper.ToObject(json);d["GoldCount"]=(int)d["GoldCount"]+1;File.WriteAllText(Config.UserNumericalJsonFile,d.ToJson());return d;}
using Sytem.Collections;
using Sytem.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using LitJson;//控制器层
public class UIMainMenuController:MonoBehaviour
{private UserNumericalView View;public void Start(){View=transform.Find("HeaderCount").GetComponent<UserNumericalView>();View.Init();//通过路径找子物体transform.Find("HeaderCount/Gold/Add").GetComponent<Button>().onClick.AddListener(GoldAddClick);UserDataModel.CreateNew();JsonData d = UserDataModel.ReadAllData();View.Refresh(d);}public void GoldAddClick(){JsonData d = UserDataModel.UpdateGold(1);View.Refresh(d);}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using LitJson;//视图层
public class UserNumericalView:MonoBehaviour
{private Text GoldCount;public void Init(){//找到Text子物体GoldCount=transform.Find("Gold/Count").GetComponent<Text>();}public void Refresh(JsonData data){GoldCount.text=data["GoldCount"].ToString();}
}

以上代码仅供帮助理解MVC开发思想,未提供对应的UI各物体挂载及摆放,如想实践,自取代码进行相应修改调试 。

该系列专栏为网课课程笔记,仅用于学习参考。    

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com