Unity3d 用C编写的Unity本机网络插件
出于某些原因,我必须用C为我的Unity客户端实现我自己的网络。所以我只查看了Unity本机插件,它允许我用C编写网络代码,供客户端使用。Unity3d 用C编写的Unity本机网络插件,unity3d,plugins,Unity3d,Plugins,出于某些原因,我必须用C为我的Unity客户端实现我自己的网络。所以我只查看了Unity本机插件,它允许我用C编写网络代码,供客户端使用。 我的服务器是用C编写的,应该与我的Unity客户端通信 我的协议已经构建好了,我想将所有网络都实现到插件中,即连接到服务器,然后接收数据,并将数据反序列化为C结构 我想知道插件的局限性。我正要创建一个HandlerCallbackRegister类,它允许C#(来自Unity)为每个网络消息注册不同的回调,但是C#en C之间的函数原型如何兼容 我的意思是,
我的服务器是用C编写的,应该与我的Unity客户端通信 我的协议已经构建好了,我想将所有网络都实现到插件中,即连接到服务器,然后接收数据,并将数据反序列化为C结构 我想知道插件的局限性。我正要创建一个
HandlerCallbackRegister
类,它允许C#(来自Unity)为每个网络消息注册不同的回调,但是C#en C之间的函数原型如何兼容
我的意思是,回调可以是例如onPlayerConnect(size\t clientId,struct player\u connect\u message*msg)但是,如何在C#中定义这样一个回调函数呢?C#struct是否会转换为C struct?尺寸呢?我有点困惑,如果有人能给我一个例子或一些解释
提前感谢跨越管理边界时的类型转换称为编组,通过谷歌搜索,您将发现更多信息。需要记住的一件事是unity不喜欢在其主线程之外发生的回调,因此您需要某种排队机制(即,向列表中添加内容并在更新()时读取)哦Interesting。。谢谢,是的useful@zambari关于这一点:它似乎是我所寻找的统一的“标准”队列,不是吗?C#部分将用我的C API定义回调,这将容纳它。然后,如果我可以从C插件调用GL.IssuePluginEvent,它应该可以工作