RedZero9 发表于 2023-3-7 13:07

Unity3D框架设计:如何设计网络框架

前言

在Unity框架设计中与游戏服务器对接的网络框架也是非常重要的一个模块,本文給大家分享如何来基于Unity来设计一个网络框架, 主要的讲解以下几个点:
对惹,这里有一个游戏开发交流小组,希望大家可以点击进来一起交流一下开发经验呀!


TCP半包粘包, 长连接与短连接, IO阻塞


Tcp Socket与UDP Socket 的技术方案
了解完网络的一些基本概念以后,接下来看下使用TCP/UDP Socket用哪些技术方案。Unity其实是作为网络的客户端,而客户端只要去连接服务端与服务器通讯就可以了,不用像服户端同时处理N个客户端的数据传送。所以客户端Socket非常的简单。Unity客户端的Socket我们用哪个插件呢?其实这种完全不需要用什么插件,直接使用OS为我们提供的Socket的相关API就可以了。


Unity的序列化与反序列化技术方案


TCP的封包与拆包


基于http的短连接技术方案


Unity 网络框架设计与实现原理
铺垫了这么多,我们直接来上Unity网络框架的架构设计结构图,供大家参考。


这里接收数据的时候,采用多线程来做,收到数据后,进行拆包与反序列化,得到数据对象后,放事件队列,游戏主线程从事件队列里面获取网络事件,然后进行处理。发送数据出去的时候,我们在游戏主线程调用异步的网络Send函数,避免IO阻塞。注意好这些点,就可以设计出一个很好的网络框架。
本节分享就到这里了
页: [1]
查看完整版本: Unity3D框架设计:如何设计网络框架