Unity3d 用C编写的Unity本机网络插件

Unity3d 用C编写的Unity本机网络插件,unity3d,plugins,Unity3d,Plugins,出于某些原因,我必须用C为我的Unity客户端实现我自己的网络。所以我只查看了Unity本机插件,它允许我用C编写网络代码,供客户端使用。 我的服务器是用C编写的,应该与我的Unity客户端通信 我的协议已经构建好了,我想将所有网络都实现到插件中,即连接到服务器,然后接收数据,并将数据反序列化为C结构 我想知道插件的局限性。我正要创建一个HandlerCallbackRegister类,它允许C#(来自Unity)为每个网络消息注册不同的回调,但是C#en C之间的函数原型如何兼容 我的意思是,

出于某些原因,我必须用C为我的Unity客户端实现我自己的网络。所以我只查看了Unity本机插件,它允许我用C编写网络代码,供客户端使用。
我的服务器是用C编写的,应该与我的Unity客户端通信

我的协议已经构建好了,我想将所有网络都实现到插件中,即连接到服务器,然后接收数据,并将数据反序列化为C结构

我想知道插件的局限性。我正要创建一个
HandlerCallbackRegister
类,它允许C#(来自Unity)为每个网络消息注册不同的回调,但是C#en C之间的函数原型如何兼容

我的意思是,回调可以是例如
onPlayerConnect(size\t clientId,struct player\u connect\u message*msg)

提前感谢

跨越管理边界时的类型转换称为编组,通过谷歌搜索,您将发现更多信息。需要记住的一件事是unity不喜欢在其主线程之外发生的回调,因此您需要某种排队机制(即,向列表中添加内容并在更新()时读取)哦Interesting。。谢谢,是的useful@zambari关于这一点:它似乎是我所寻找的统一的“标准”队列,不是吗?C#部分将用我的C API定义回调,这将容纳它。然后,如果我可以从C插件调用GL.IssuePluginEvent,它应该可以工作