Unity服务器端与客户端之完整通信实现案例

时间:2024-04-14 11:46:58

一、服务器使用PEsocket

一、首先编写一个PEsocket代码,这个代码后面需要的可以下载,下载链接提供在下方了。在VS2017将PEsocket代码编译成dll文件以供unity使用。

具体操作如:点击项目的属性——>生成——>选择生成路径——>点击菜单栏的生成——>重新生成解决方案。

就会在指定目录生成了dll。

Unity2017服务器端与客户端之完整通信实现案例

二、新建一个工程,直接去使用PESocket.dll。

1. 项目选择是控制台的应用,默认会创建一个项目,不需要,把项目都移除,留一个空的解决方案。

2. 在空的解决方案右键添加一个新的服务器工程。

Unity2017服务器端与客户端之完整通信实现案例

3.如果服务器要跟客户端进行通讯,那就要有一个协议,所以要添加一个协议的工程。

Unity2017服务器端与客户端之完整通信实现案例

还要再改一下框架,右击项目属性,把目标框架改为unity3.5的,因为要给unity使用的,所以要低于或者等于unity。

Unity2017服务器端与客户端之完整通信实现案例

4. 引用。

Unity2017服务器端与客户端之完整通信实现案例

5.网络消息需要继承自PEMsg类,并打上[Serializable]标签,便于使用C#语言的序列化功能。消息体支持多层嵌套。

Unity2017服务器端与客户端之完整通信实现案例

6.在服务器里面引用。

Unity2017服务器端与客户端之完整通信实现案例

7. 确定一下当前服务器的ip和端口,在NetMsg.cs定义一个类,相当于配置文件。

Unity2017服务器端与客户端之完整通信实现案例

8.在服务器代码里边生成一个PESocket。

Unity2017服务器端与客户端之完整通信实现案例

9.在server工程里添加一个session类,要继承PESession,负责与客户端进行连接的。

Unity2017服务器端与客户端之完整通信实现案例

二、客户端unity使用PEsocket

一、把上面协议的工程导出来供客户端使用,跟上面生成PEsocket.dll文件的操作一样。

二、新建一个unity工程,新建项目路径选择如下。

Unity2017服务器端与客户端之完整通信实现案例

 

三、创建一个场景,挂载脚本GameStart,编写脚本。

Unity2017服务器端与客户端之完整通信实现案例

四、新建客户端的ClientSession,供上面GameStart使用。

Unity2017服务器端与客户端之完整通信实现案例

五、在unity里边使用dll,只需要复制文件到项目里边即可

Unity2017服务器端与客户端之完整通信实现案例

六、先运行服务器项目,再运行unity客户端项目,就可以连接通信了,如下。

Unity2017服务器端与客户端之完整通信实现案例

七、在GameStart里边写一个日志接口,不然在unity无法查看到报错信息。

Unity2017服务器端与客户端之完整通信实现案例