开源Unity服务端客户端(双端C#)网络通讯框架(Lidgren)[一]

1. 简介

1.1 结识Lidgren的机缘巧合

开发Unity的各位或多或少都可能在工作中遇到非客户端开发的一些内容。大型游戏开发,公司内部应该已经有写好的框架,故本文章内容
主要针对,平时开发仿真应用,需要客户端/服务端使用协议进行状态同步的场景。如:常见的仿真应用中教师端下发故障,学员端展现并解决
故障上传至服务器。
 	  由于技术限制最经常使用的编程语言应该是C#经过一番这样那样的折腾与不断的尝试。最终Lidgren入选。

1.2 为什么不直接使用socket

需要自己写好多逻辑,并解决一系列socket常见问题。总结就是太菜,写不好socket底层。

1.3 项目仓库

lidgren-network仓库地址

2. 正确的打开方式

正确的打开方式可以有效避免从 git clone XXX 到放弃。

unity服务端 unity服务端连接框架_C#服务端


双击此文件可直接打开项目。

unity服务端 unity服务端连接框架_unity_02


工程输出类型为类库。

2.1 官方例子程序执行(sample)

say halo Lidgren world.

2.1.1 VS2019运行例子程序

unity服务端 unity服务端连接框架_c#_03

进入后选择chat这个例子

unity服务端 unity服务端连接框架_C#服务端_04

修改SamplesCommon工程属性

unity服务端 unity服务端连接框架_unity_05


补充:

unity服务端 unity服务端连接框架_unity_06


Lidgren.Network项目中 添加引用:%Unity(安装目录)%\Editor\Data\Managed\UnityEngine.dll

或者合理修改下图所示文件

unity服务端 unity服务端连接框架_网络框架_07


编译好后即可体验。

unity服务端 unity服务端连接框架_C#服务端_08

2.1.2 rider(简略描述以下)

rider运行此程序需要安装donet framework,具体安装和配置可合理运用网络。这里还是建议在不熟悉rider的情况下
使用VS进行学习。

unity服务端 unity服务端连接框架_unity_09


需要修改内容是与Vs相同。

2.2 其他官方案例

其他案例下次一定补上,本次就先这样(的确如大家想的那样,我还没有看)。

2.3 对API的吐槽

unity服务端 unity服务端连接框架_c#_10

API里只有API没有tutorial不过看样子应该作者是不会再多谢相关教程。这不正是本文存在的意义?吐槽什么?

3.补充一点Readme中的内容

Note! Not actively developed any more; only accepting trivial or minor bug fixes.(不再进行更多的功能开发,只偶尔修改下bug)

Lidgren.Network

Lidgren.Network is a networking library for .NET framework, which uses a single UDP socket to deliver a simple API for connecting a client to a server, reading and sending messages.
(使用.NET framework、UDP传输)

This has been updated for use with Unity3D, feel free to send PRs for other bugs fixes.(这句应该说的是在仓库的pull requests 界面中可以看到bug的修复内容。)
To use this in Unity3D just enable the experimental .NET framework.
you can do this in Edit -> Project Settings -> Player -> Other Settings -> Api Compatibility Level -> .NET 4.6 切换为.net4.x

Platforms supported: PC系统没啥问题

  • Linux
  • Mac
  • OSX

Platforms/Toolchains which need testing: 移动平台自己掂量

  • Android
  • iPhone
  • Xamarin

Tested in: 以下平台没啥问题

  • Mono (alpha and beta)
  • .NET 4.6
  • Unity 2017.1 -> 2018.1.

Future Roadmap: 之后的规划(看来没戏,从开头第一句来分析,不过看内容还是很吸引人的可惜了)

  • Update to latest .NET 4.6
  • Investigate officially supporting .NET Core.
  • Improve test suite so that tests are run on all platforms we support, for each release.

好的就到这里 _-- _;