目录

前言

链接

环境配置

安装NuGetForUnity

安装Protobuf

安装Dotnetty包

手动安装其他依赖包


前言

公司的前辈基于Netty开发了一个服务器,推荐我在前端也使用Netty,于是找到了DotNetty这一能够在C#使用的Netty框架。两者基本一致,只有一些方法的名字有略微不同,首先进行环境配置。


链接

DotNetty ——Githubhttps://github.com/Azure/DotNettyProtocolBuffers ——Githubhttps://github.com/protocolbuffers/protobufProtocolBuffers ——谷歌官方网站https://developers.google.com/protocol-buffers?hl=zh-cn


环境配置

往Unity引入包有两种方式,一个是用Nuget,一个是自己手动导入。这里我两种方式都用了,因为NuGet导入了Dotnetty后还缺少了两个依赖包,并且在NuGet中下载失败了。


安装NuGetForUnity

下载NugetForUnity.unitypackage,双击打开添加到项目中。

NugetForUnity的GitHub地址https://github.com/GlitchEnzo/NuGetForUnity/releases

导入完成后标题栏会出现NuGet,点击NuGet→Manage NuGet Packages打开NuGet窗口。(没有显示出来的话就把项目关掉然后再打开就好了)

可以在这里搜索各种包,可以很方便地添加到Unity工程里。


安装Protobuf

安装Google.Protobuf包。


安装Dotnetty包

暂时只需要这六个,特别是DotNetty.Codecs.Protobuf。DotNetty.Codecs.Protobuf包中有着关于Protobuf的Decoder和Encoder,即使没有安装DotNetty.Codecs.Protobuf包,DotNetty.Codecs包中也有着DotNetty.Codecs.Protobuf这一命名空间,但是里面没有ProtoDecoder和ProtoEncoder。

然后我还去下了DotNetty.Codes.ProtocolBuffers,发现这个包里面是有ProtoDecoder和ProtoEncoder的,但是没法用啊(?),给我整蒙了。

下载完成后Unity会报错,这个时候只要重新打开项目就OK了。


手动安装其他依赖包

写完Client打算打包Unity程序进行测试的时候报错了,提示缺少了两个依赖包,并且NuGet管理器里面没法安装,点击完立即卡住。那我就只好下载好自己导入了。

缺少的两个依赖包分别是:

  1. System.Collections.Immutablehttps://www.nuget.org/packages/System.Collections.Immutable/
  2. System.Runtime.CompilerServices.Unsafehttps://www.nuget.org/packages/System.Runtime.CompilerServices.Unsafe

点击Download package下载,这里我没有选择preview版,选择的是6.0.0(哪个下载多下哪个啊不是吗)。

下载完后把文件后缀改成zip,并且进行解压,打开文件夹后是这样的。

其中Lib文件夹里面的文件和Unity工程设置里的.Net框架设置有关,可以在Unity中选择Edit→ProjectSettings→Player→OtherSetting→Configuration→ApiCompatibilityLevel查看对应的.Net框架

我的Unity项目用的是 .NET Standard 2.1,因此选择相近的框架,只需要netstandard2.0这一文件夹就可以了,其他的删掉。

在Unity中新建文件夹Plugins,把整个文件夹丢到里面。(不要丢在NuGet生成的Packages文件夹里,不然项目启动的时候NuGet会把它没有记录的包自动给你删除掉)。

这样一来客户端有关Dotnetty和Protobuf的环境配置就做好了,可以进行基于DotNetty的Unity客户端开发。

基于Dotnetty和Protobuf的Unity客户端开发(一)相关推荐

  1. Unity客户端开发面试题记录

    Unity客户端开发面试题记录 1.如何理解面向对象思想 A:面向对象是将功能等通过对象来实现,将功能封装进对象之中,让对象去实现具体的细节.面向对象的特征是:封装,继承,多态.多态就是接口的多种不同 ...

  2. 基于Android的小巫新闻客户端开发--UI设计(主界面)

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 基于An ...

  3. 开篇--基于Android的小巫新闻客户端开发

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 开篇-- ...

  4. Unity客户端开发优化要点

    脚本方面 1.不需要高频率调用的函数,使用InvokeRepeating(或Time.frameCount%n)代替Update 2.SetParent.Instantiate.Find.IO操作.S ...

  5. 基于 Cesium 的Web三维地球客户端程序开发框架

    Mars3D三维可视化平台,是火星科技研发的一款基于 WebGL 技术实现的三维客户端开发平台,基于Cesium优化提升与B/S架构设计,支持多行业扩展的轻量级高效能GIS开发平台,能够免安装.无插件 ...

  6. 【游戏开发实战】用Go语言写一个服务器,实现与Unity客户端通信(Golang | Unity | Socket | 通信 | 教程 | 附工程源码)

    文章目录 一.前言 二.Go开发环境搭建(Windows系统) 1.安装Go命令行工具 2.创建GoWorkspace目录 3.配置GOPATH环境变量 4.配置GOPROXY代理 5.安装VSCod ...

  7. 基于安卓的新闻客户端开发

     研究背景 当前市面上移动新闻客户端,包括网易移动新闻客户端,搜狐移动新闻客户端,凤凰移动新闻客户端等.这些客户端界面绚丽,版面较多,操作过程较为复杂.为简化流程,操作简单,方便用户使用和下载.所以, ...

  8. 基于freeswitch+linphone客户端开发对讲系统

    基于freeswitch+linphone客户端开发对讲系统 基本思路: freeswitch开启conference call (3100), 并进行一些配置(例如,没有moh,刚刚进入时静音禁止视 ...

  9. OPC通讯开发简介——基于WTOPCSVR的OPC服务器端和基于WTCLIENT的OPC客户端开发

    OPC通讯开发简介--基于WTOPCSVR的OPC服务器端和基于WTCLIENT的OPC客户端开发 说明 一.OPC技术背景及介绍 二.OPC通讯的流程(OPC经典架构) 三.OPC标准官方文件部分变 ...

最新文章

  1. 如何用asp.net向其他服务器post一条信息
  2. html中内联元素和块元素的区别、用法以及联系
  3. C语言 | 基于STM32实现AT24CXX应用(代码类)
  4. mysql redis qps_Redis QPS测试
  5. 熊猫直播P2P分享率优化(下):ASN组网
  6. SAP UI5 应用开发教程之十九 - SAP UI5 数据类型和复杂的数据绑定
  7. 面向对象程序设计的术语
  8. 小米wifi每天晚上准时断网_小米 11再次确定,将于28日准时发布,售价更感人
  9. 百度地图API如何申请?(自认为比较详细,如解决了你的问题请收藏、点赞、关注!)
  10. linux中Centos7搭建lnmp环境
  11. lt;转gt;Java转iOS-第一个项目总结(2):遇到问题和解决方案
  12. 文字时钟罗盘动态html代码_文字时钟罗盘动态html代码工具-文字时钟APP最新版下载-游戏窝...
  13. 协议森林02 小喇叭开始广播 (以太网与WiFi协议)
  14. linux搭建雷霆传奇h5源码,【雷霆传奇H5服务端】2020.07最新超好看大羽翼传奇网页游戏程序[附超详尽构建实例教程]...
  15. 计算机不能识别华为手机,华为手机链接电脑无法识别是为什么?
  16. Loongson_灵珑9S2A 逸珑8089 3B1500龙芯电脑的使用感触
  17. 「水花投资」是什么?是个人吗?
  18. PHP网页截取快照:PHP截取网站网页保存为一张图片实现。
  19. JavaScript 简单 登录验证 固定账号密码
  20. android 蓝牙无法连接,无法通过蓝牙连接

热门文章

  1. 南通20l0年C语言单招试卷,江苏省单招计算机原理试题汇总
  2. 网络安全之认识挖矿木马
  3. 详解新网银木马清除技巧
  4. [Java]应用冒泡排序法对数组进行升序排列
  5. img镜像系统扩展空间
  6. 中了ARP病毒解决方法与相关工具
  7. 三个开源工具搞定 100 年前的老视频复原!就是这么强大!
  8. 提示“QQ在线状态服务尚未启用,您需要添加对方为好友才能与其进行会话”解决方法
  9. Python 生产者消费者模型
  10. 0058 编写将1元钱兑换成1分,2分,5分的硬币,问有多少种兑换的方法?将他们一一列举出来。...