Unity(MVC思想)

news2025/2/25 8:40:35

MVC

一下演示使用MVC和不使用MVC的做法区别。  前两个没有使用MVC

主面板逻辑:

  mainPanel是该脚本名字

每个场景中不一定存在该面板,单纯的显隐需要去手动挂载过于麻烦。

所以自己读取创建面板出来(每个场景仅创建一次),存下该面板,执行其他逻辑

大项目可以直接删,防止场景上物体过多

角色面板逻辑:

获取主面板身上脚本,本来是用来判断是否为空的。 这里可以用于外界调用更新方法

为了防止修改,写一个属性,仅允许get'

Model数据

Unity中没有action,只有自带的UnityAction,且需要引入命名空间

事件本身私有,提供给外部添加移除方法即可。

确保第一次数据是初始的,且之后再次获取时,这个数据是最新的。    因为静态,单例全局只有一份

View界面

无需多言,看代码

*Controller业务逻辑

此脚本是连接数据模型和界面显示的重要桥梁

初始为空,加载面板时再获取

此处为第四个脚本,仅检测玩家输入

这里获取View引用的方法,是直接将两个脚本都挂到同一个物体上,然后getcomponent

玩家展示面板和主面板逻辑,他们的controller脚本写法基本相同,都是获取统一物体身上的view,然后监听按钮,控制显隐、数据更新、升级等

数据模块当中的这个事件,是在升级时调用的,因此在控制模块中加入view的更新方法。

   

记得退订

其他MVX

记住适合自己的才是最好的

MVP

MVC中v用的更新方法基于传进来的m的数据,而mvp中,不需要依赖m的数据

MVVM(不好)→MP

比如a里面的名字绑定b的名字,只需要改变b'就能改变a,不需要获取a的引用了。

MP:

这个在unity小框架里面提到过

MVE

PureMVC

 

只需要导入这三个文件夹即可

第二种可以打开它的vs工程,右键“生成。然后找到它的dll包,导入unity的plugins文件夹”

好处是只有一个插件,前提是你很熟练,不需要看代码

Model:Proxy

所有通知类的名字都做成统一常量

注意PureMVC需要保持这种格式,第一种外部可以传参数

第二种,不传data

大Data实际上是父类里面的一个属性

PlayerDataOBJ是一个玩家数据类,也就是MVC中的Model

View:Mediator

       这一步很重要 3、4

 ViewComponent和notification.Body(事件内容)都是object类型,调用数据更新方法

 :Facade

因为小instance其实还是父类,所以返回时还得转换一下

还没有control,所以创建一下controll

这时候其实就会执行Execute里面的内容

命令:Command等

知识总结:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1585764.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ubuntu系统安装python虚拟环境

一、安装python: 步骤1:在Ubuntu系统中打开终端,你可以使用快捷键CtrlAltT来打开终端,或者在应用程序菜单中找到终端。 步骤2:更新软件包列表,在终端中输入以下命令,更新软件包列表&#xff1…

React 快速入门:掌握前端开发的核心技能

React 快速入门:掌握前端开发的核心技能 一、React 简介1.1 React 的历史1.2 React 的概念1.3 React 的特点1.4 React 的官网地址 二、开发环境搭建三、React 基础3.1 JSX3.2 组件3.3 Props3.4 State3.5 props 和 state 的区别3.6 Hook 四、React 生命周期五、添加样…

oracle分区表迁移后空间占用增大

检查分区段隐含参数: select a.KSPPINM "Parameter", c.ksppstvl "Instance Value", ksppdesc "Desc" from sys.x$ksppi a, sys.x$ksppcv b, sys.x$ksppsv c where a.indx b.indx and a.indx c.indx and substr(ksppinm,1,1)_ and…

AI证件照抠图

AI证件照抠图 AI证件照抠图1. 环境导入2. main.py3. 实现效果展示 AI证件照抠图 *免费AI证件照抠图 1. 环境导入 mkdir /home/aistudio/external-libraries pip install onnxruntime scikit-image -i https://mirrors.aliyun.com/pypi/simple/ \-t /home/aistudio/external…

Mysql【索引覆盖、索引下推、索引合并、索引跳跃】介绍

索引覆盖、索引下推、索引合并、索引跳跃都是Mysql对索引的优化手段,它们的思想就是尽量让查询数据走索引,那它们有什么区别呢? 一、首先介绍一下MySQL体系结构 上图来自MySQL官方文档。 通常把MySQL从上至下分为以下几层: MySQ…

arXiv苹果公司新论文“Self-Play”方法训练车辆道路merge的策略

arXiv苹果公司新论文“Self-Play”方法训练车辆道路merge的策略 附赠自动驾驶学习资料和量产经验:链接 苹果于2020年1月28日上传arXiv新论文“Towards Learning Multi-agent Negotiations via Self-Play“。 摘要: 做出复杂、鲁棒和安全的串行决策是智能…

使用 Python 的 LSTM 进行股市预测

目录 一、说明 二、为什么需要时间序列模型? 三、下载数据 3.1 从 Alphavantage 获取数据 3.1 从 Kaggle 获取数据 3.3 数据探索 3.4 数据可视化 四、将数据拆分为训练集和测试集 五、数据标准化 六、通过平均进行一步预测 6.1 标准平均值 6.2 指数移动平均线 6.3 如…

包拯断案 | 集群备份续集:三招解决定时备份延迟@还故障一个真相

今天,小编给大家讲述自己亲身遇到的一个数据库集群备份问题,希望帮助DBA运维的你绕开这个烦恼,轻松找到答案! 1、数据库集群在进行定时备份时(从节点备份),出现了主从延迟较大的告警&#xff0c…

泽众Testone自动化测试平台,测试用例支持单个调试执行,同步查看执行日志

泽众Testone自动化测试平台之前版本,测试用例批量和单个执行,必须要通过测试集操作执行,操作略繁琐,我们通过本轮优化升级,测试用例直接可以单个调试执行,同步查看执行日志,操作上去繁就简&…

Windows搭建Jellyfin影音服务结合内网穿透实现公网访问本地视频文件

文章目录 1. 前言2. Jellyfin服务网站搭建2.1. Jellyfin下载和安装2.2. Jellyfin网页测试 3.本地网页发布3.1 cpolar的安装和注册3.2 Cpolar云端设置3.3 Cpolar本地设置 4.公网访问测试5. 结语 1. 前言 随着移动智能设备的普及,各种各样的使用需求也被开发出来&…

windows ffmpeg7 通过rtsp拉取h265裸流

点击下边那个链接会转到github 下载完成后,添加include、lib到工程。 添加头文件: extern "C" { #include "libavcodec/avcodec.h" #include "libavformat/avformat.h" #include "libavformat/avio.h" #inclu…

总体标准差、样本标准差、标准误(标准误差)

下面是样例: 参考文章如何做好SCI论文中的标准误差图 - 知乎 (zhihu.com)

鸿蒙HarmonyOS 与 Android 的NDK有什么不一样?

鸿蒙(HarmonyOS)和Android的NDK(Native Development Kit)是两个不同的概念,它们在设计理念、架构、开发方式和目标平台等方面存在着一些显著的不同。让我们详细比较它们的特点和区别。 1. 设计理念和架构: …

雪亮工程视频联网综合管理/视频智能分析系统建设方案(二)

一、我国雪亮工程当前建设需求 1)加强社会治安防控感知网络建设 加强社会治安防控智能感知网络建设,针对城中村、背街小巷、城乡结合部等重点区域建设安装视频监控设备,减少死角和盲区,与已有感知系统结合,形成高低搭…

【教程】四种方法将App打包为IPA文件类型

摘要 本教程总结了将App应用程序打包为IPA包的四种常用方法,包括Apple推荐的方式、iTunes拖入方法、自动编译脚本和解压改后缀名方法。每种方法都有其特点和适用场景,在实际开发中可以根据需求选择合适的方式进行打包。通过本教程,您将了解到…

windows10系统下TP-LINK万兆网卡属性配置高级说明

文章目录 打开配置属性说明ARP Offload:ARP地址解析协议卸载Downshift retries:降档重试次数Energy-Efficient Ethernet:高能效以太网Flow Control:流量控制Interrupt Moderation:中断调整Interrupt Moderation Rate:中断调节率IPv4 Checksum Offload:IPv4校验和卸载…

盲盒小程序带来的乐趣技术用代码如何形容?

星耀海贼萌袋抽卡潮玩小程序app盲盒软件定制 盲盒小程序带来的乐趣,技术人员可以用代码来形容,虽然代码本身并不具备直接描述情感的能力,但我们可以借助一些编程元素和概念来隐喻性地表达这种乐趣。 随机性的乐趣:盲盒小程序的核…

Jackson配置处理LocalDateTime、LocalDate等java8时间类型失效的问题解决

目录 前言 一、问题排查过程 1.1 SpringMvc是如何处理请求报文和响应报文 1.2 JacksonConfig配置排查 二、导致Jackson配置失效的原因 2.1 没有addSerializer 2.2 添加了EnableMvc注解 2.3 另外有地方配置了Jacksonhttpconver覆盖了配置 总结 前言 上一篇文章《使用Ja…

利用alibaba.item_get API接口,跨境电商如何快速获取商品详情?

利用alibaba.item_get API接口,跨境电商可以快速获取商品详情,为业务的开展提供有力支持。alibaba.item_get API接口是阿里巴巴开放平台提供的一项服务,它允许开发者通过调用API接口,获取阿里巴巴平台上商品的详细信息。以下是如何…

QT 线程之movetothread

上文列举了qt中线程的几种方法,其中2种方法最为常见。 这两种方法都少不了QThread类,前者继承于QThread类,后者复合QThread类。 本文以实例的方式描述了movetothread()这种线程的方法,将QObject的子类移动…