Unity 游戏框架搭建 2019 (五十一) MonoBehaviourSimplify 是框架?

2024-05-06 12:58

本文主要是介绍Unity 游戏框架搭建 2019 (五十一) MonoBehaviourSimplify 是框架?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在上一篇呢,我们的得到了目前库的一个分层图,如下:
006tNc79gy1fzft7y8unhj30w20ey3zt.jpg

而这个图中,把我们的库分成两个部分。一部分是框架,一部分是工具/库。

框架部分,只有一个 MonoBehaviourSimplify,而工具/库,则是除了 MonoBehaviourSimplify 以外的全部内容。

为什么 MonoBehaviourSimplify 是框架呢?

我们先来看看框架是什么?

框架:提供一个架构(文件结构、约定等等),你必须遵守它,只要你遵守,那剩下的就全部处理通用需求了。

这个定义呢是来自某个 JavaScript 大神书里写的。笔者非常认可这个说法。

那么 MonoBehaviourSimplify 为我们提供了怎样的架构?

只要我们的每个脚本都继承了 MonoBehaviourSimplify 就可以使用它的消息功能,并且它的消息功能非常方便,这个是利好的方面,我们想和某个脚本交互,不需要获得这个脚本的对象,而是两个脚本只要约定好注册的消息名就好了。

所以它的推荐使用方式是,继承。

其次,继承了之后,编译器会给你报错,因为要强制实现 OnBeforeDestroy 这个方法。那么这个就是多用户的约束,这部分其实是属于我们的约定部分。

框架和用户约定好了,如果想更爽地使用 消息功能以及简化的 API,那么用户只能遵循它的用法,继承它,并重写 OnBeforeDestroy 方法。

那么说到这里,还没有提到架构两个字。

架构在哪里?

我们仔细回忆最初 MonoBehaviourSimplify 解决的是什么问题?

是解决脚本之间访问问题。

在使用 MonoBehaviourSimplify 之前,脚本之间交互的模拟图如下:
006tNc79gy1fzft84no0tj30q00j2aat.jpg

图中箭头的意思呢,是拥有脚本引用的意思,可以理解成成员变量,说耦合性非常高。

而使用了 我们的 MonoBehaviourSimplify 之后,脚本之间的交互模拟图就会变成如下:
006tNc79gy1fzft8avq62j30zq0ggta9.jpg
虽然我们的脚本还是与 MsgDispatcher 耦合了,不过情况好了很多,脚本之间就没有耦合了。
由于继承了 MonoBehaviourSimplify,在使用消息功能的时候压根感受不到 MsgDispatcher 存在。

而这就是 MonoBehaviourSimplify 提供的架构。

它提供了:

  • 约定:
    • 用户与框架之间的约定,用户想使用框架功能,就要遵循框架的使用规则。
  • 规则:
    • MonoBehaviourSimplify 的规则,就是要继承 MonoBehaviourSimplify,要覆写 OnBeforeDestroy。
  • 共识:
    • 用户与框架作者,都更推荐使用消息来处理脚本之间访问的问题。

而我们的 MonoBehaviourSimplify 除了提供了约定、规则、共识之外,还影响了脚本之间的交互结构。上边的两张图就是证明。

而在之前里说约定、规则、共识有什么用呢?

在这里笔者告诉大家。
架构的本质,就是约定、规则、共识。通过约定、规则、共识从而影响项目中任何东西的结构。比如项目目录规范(规则)导致了项目文件结构(编码规范)导致了代码结构,而主程与开发者的约定就会导致项目的模块结构以及团队结构等。总之,架构最终的目的,就是得到一个好的结构。好的目录结构,好的代码结构,好的程序结构,以及好的脚本之间交互所产生的结构,那么什么才算好呢?俗话说,就是弟兄们干活干得快干得好,项目跑得快跑得好,这就是好的架构。

扯得有点远了,总之,框架提供了架构,更准确地说,是一部分架构,而我们的 MonoBehaviourSimplify ,改善了脚本之间交互的问题,针对这个问题,提供了一个脚本之间的交互结构,也就是下图所示的结构。
006tNc79gy1fzft8e5a2ij30zq0ggta9.jpg

这就是我们库当中,属于框架的部分。

OK,我们最后再回顾一下,什么是框架:

框架:提供一个架构(文件结构、约定等等),你必须遵守它,只要你遵守,那剩下的就全部处理通用需求了。

从这一点去考虑,我们的 MonoBehaviourSimplify 是不是框架呢?

转载请注明地址:凉鞋的笔记:liangxiegame.com

更多内容

  • QFramework 地址:https://github.com/liangxiegame/QFramework

  • QQ 交流群:623597263

  • Unity 进阶小班

    • 主要训练内容:
      • 框架搭建训练(第一年)
      • 跟着案例学 Shader(第一年)
      • 副业的孵化(第二年、第三年)
    • 权益、授课形式等具体详情请查看《小班产品手册》:https://liangxiegame.com/master/intro
  • 关注公众号:liangxiegame 获取第一时间更新通知及更多的免费内容。

这篇关于Unity 游戏框架搭建 2019 (五十一) MonoBehaviourSimplify 是框架?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/964420

相关文章

搭建Kafka+zookeeper集群调度

前言 硬件环境 172.18.0.5        kafkazk1        Kafka+zookeeper                Kafka Broker集群 172.18.0.6        kafkazk2        Kafka+zookeeper                Kafka Broker集群 172.18.0.7        kafkazk3

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

BUUCTF靶场[web][极客大挑战 2019]Http、[HCTF 2018]admin

目录   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 [web][HCTF 2018]admin 考点:弱密码字典爆破 四种方法:   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 访问环境 老规矩,我们先查看源代码

cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个?

跨平台系列 cross-plateform 跨平台应用程序-01-概览 cross-plateform 跨平台应用程序-02-有哪些主流技术栈? cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个? cross-plateform 跨平台应用程序-04-React Native 介绍 cross-plateform 跨平台应用程序-05-Flutte

国产游戏崛起:技术革新与文化自信的双重推动

近年来,国产游戏行业发展迅猛,技术水平和作品质量均得到了显著提升。特别是以《黑神话:悟空》为代表的一系列优秀作品,成功打破了过去中国游戏市场以手游和网游为主的局限,向全球玩家展示了中国在单机游戏领域的实力与潜力。随着中国开发者在画面渲染、物理引擎、AI 技术和服务器架构等方面取得了显著进展,国产游戏正逐步赢得国际市场的认可。然而,面对全球游戏行业的激烈竞争,国产游戏技术依然面临诸多挑战,未来的

pico2 开发环境搭建-基于ubuntu

pico2 开发环境搭建-基于ubuntu 安装编译工具链下载sdk 和example编译example 安装编译工具链 sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib 注意cmake的版本,需要在3.17 以上 下载sdk 和ex

Spring框架5 - 容器的扩展功能 (ApplicationContext)

private static ApplicationContext applicationContext;static {applicationContext = new ClassPathXmlApplicationContext("bean.xml");} BeanFactory的功能扩展类ApplicationContext进行深度的分析。ApplicationConext与 BeanF

数据治理框架-ISO数据治理标准

引言 "数据治理"并不是一个新的概念,国内外有很多组织专注于数据治理理论和实践的研究。目前国际上,主要的数据治理框架有ISO数据治理标准、GDI数据治理框架、DAMA数据治理管理框架等。 ISO数据治理标准 改标准阐述了数据治理的标准、基本原则和数据治理模型,是一套完整的数据治理方法论。 ISO/IEC 38505标准的数据治理方法论的核心内容如下: 数据治理的目标:促进组织高效、合理地

ZooKeeper 中的 Curator 框架解析

Apache ZooKeeper 是一个为分布式应用提供一致性服务的软件。它提供了诸如配置管理、分布式同步、组服务等功能。在使用 ZooKeeper 时,Curator 是一个非常流行的客户端库,它简化了 ZooKeeper 的使用,提供了高级的抽象和丰富的工具。本文将详细介绍 Curator 框架,包括它的设计哲学、核心组件以及如何使用 Curator 来简化 ZooKeeper 的操作。 1

【Kubernetes】K8s 的安全框架和用户认证

K8s 的安全框架和用户认证 1.Kubernetes 的安全框架1.1 认证:Authentication1.2 鉴权:Authorization1.3 准入控制:Admission Control 2.Kubernetes 的用户认证2.1 Kubernetes 的用户认证方式2.2 配置 Kubernetes 集群使用密码认证 Kubernetes 作为一个分布式的虚拟