Unity Mirror 从入门到入神(一)

Mirror从入门到成神

简介

Mirror是一个unity网络同步框架,基于MonoBehaviour生命周期的回调的基础上进行数值的同步,将通讯方式和协议剥离,顶层业务只需关注写入读取流,具体传输协议由底层不同协议实现模块完成,使用Mirror编写网络联网游戏,需要掌握分布式编程,要习惯异步的思维,一个方法执行之后无法立刻拿到结果,可以利用协程来检查或者依托特定对象生命周期,也可以使用服务器回调的形式来做,先来看看unity原本的生命周期,关键是easy to use,国外倒是挺火的,国内没啥声响,我们团队在鉴于自己的实际情况,看重的就是一套代码管理,无需额外专职后端开发(项目小)

Unity的MonoBehavior生命周期事件包括Awake、Start、FixedUpdate、Update、LateUpdate、OnEnable、OnDisable和OnDestroy。
Mirror的NetworkManager,NetworkBehavior 图片来源于官网
在这里插入图片描述

在这里插入图片描述

在Mirror中相对本身的生命周期会多几个,可以在Mirror的官网查看详情NetworkBehaviour Callbacks

为了方便理解这里我们首先抽离一个概念,客户端(Client)和服务器(Server),在mirror中他们都是同一个项目的编译产物,在源头上是共生的,内部通过一些特定的标志来判定对应的逻辑代码是否应该执行,比如扣减用户血量,这种安全性要求较高的逻辑内容理应放置到服务器中执行,也有叫前端,后端的,我们选择mirror的原因是因为可以同项目管理,不需要额外的项目和开发人员来支撑服务端,大部分的游戏逻辑都可以公用,比如游戏功能道具啊,Server发布的时候非特殊要求的情况下使用Dedicated Server的方式进行发布,如果形象的形容是Headless无头,如果接触过爬虫的就会知道 无头浏览器的概念。及没有渲染能力的游戏客户端。

启动游戏服务端的时候有几个模式,分别是Host,Server Only,Client Only。主机模式,仅启动服务端,仅启动客户端,说白了我们把游戏逻辑写道一起,如果要完成的进行游戏,就必须同时具备Server,Client 都在线的情况。Host 启动后运行服务器代码,也运行客户端代码。Server Only仅运行服务端代码,Client仅运行客户端代码,下图为Host模式的结构性说明

在这里插入图片描述

RemoteClient表示通过网络通讯协议接入的其他客户端,Local Client在Mirror中做了特殊处理,并不会走网络协议,而是直接将数据写入一个本地队列,另外还有一些执行差异,后面会提到。这里总结下能运行完整游戏的方式

  1. 以HOST模式启动
  2. 连接其他HOST模型启动的程序
  3. 连接其他Server模式启动的程序

下图展示的是数据流的流动方向,对应Spawn出来的单位,服务器和所有客户端都会存在一个实例࿰

Unity3D是款非常流行的游戏引擎,它广泛应用于游戏开发、虚拟现实、增强现实等领域。对于初学者来说,学习Unity3D需要了解其基本概念、操作技巧和流程。为了从入门到精通,需要掌握以下三个阶段: 第阶段是入门阶段。这个阶段的关键是掌握Unity3D的基本概念和操作方法。首先,需要了解Unity3D的界面结构和菜单命令,熟悉不同面板的功能,包括场景窗口、资源窗口、控制台、层次结构等。其次,需要掌握Unity3D中的对象、组件和预制件的概念。通过学习Object和Component的类结构,了解它们的特性和作用,明白游戏对象的层级关系、物理模拟和碰撞检测等原理。最后,需要掌握脚本编写的基础语法,理解脚本与其他组件的交互方式和生命周期。 第二阶段是中级阶段。在入门阶段的基础上,需要进步深入了解Unity3D引擎的高级技术和实际应用。主要包括:游戏设计模式、界面布局和UI设计、动画控制和剪辑编辑、材质和着色器的使用、粒子系统和特效处理等。此外,需要了解Unity3D的性能优化和调试方法,运用Profiler、Frame Debugger等工具分析游戏引擎的内部运行机制,减少游戏卡顿和崩溃的情况。 第三阶段是精通阶段。这个阶段的关键是掌握Unity3D引擎的高级特性和复杂游戏的开发流程。主要涉及:脚本优化和高级算法的实现、网络游戏开发和多人游戏场景同步、人工智能和路径规划等。此外,需要了解Unity3D的插件开发和资产管理、持续集成和版本控制、移动平台和AR/VR领域的开发规范等。最终,达到像Unity3D官方开发者样的能力水平,能够独立完成复杂游戏的开发和运营,或参与到较大规模的团队开发项目中,成为名优秀的Unity3D开发者。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值