unity3d - 用 C 编写的 Unity 原生网络插件
问题描述
由于某些原因,我必须在 C 中为我的 Unity 客户端实现我自己的网络。所以我只是查看了 Unity 原生插件,它允许我用 C 编写我的网络并供我的客户端使用。
我的服务器是用 C 编写的,应该与我的 Unity 客户端通信。
我的协议已经建立,我想将所有网络实现到插件中,即连接到服务器,然后接收数据并将数据反序列化为 C 结构。
我想知道插件的限制。我正要创建一个HandlerCallbackRegister
类,允许从 C#(来自 Unity)为每个网络消息注册不同的回调,但是 C# 和 C 之间的函数原型如何兼容?
我的意思是,一个回调可能是例如onPlayerConnect(size_t clientId, struct player_connect_message *msg);
,但是这怎么可能在 C# 中定义一个像这个回调这样的函数呢?将 C# struct 转换为 C struct 吗?size_t 呢?我有点困惑,如果有人可以给我一个例子或一些解释。
提前致谢
解决方案
推荐阅读
- unity3d - Unity 3D 与 3DS Max 默认模型颜色差异
- spring - 应用程序启动失败如何解决?
- git - Git - 如何强制从本地远程同步
- c++ - vkCreateInstance 抛出分段错误
- google-cloud-platform - 从 GCP 虚拟机到同一区域的负载均衡器的 GCP 出口成本
- c# - WPF:如何检测在 DataGrid 控件中完成渲染的行?
- python - 如何使用 Selenium 同时与不同的窗口进行交互?
- php - 使远程服务器的客户端(Raspberry pi,php)可以访问键盘
- php - 如何在 PHP 的新行上更改变量值
- kotlin - kotlin coroutine - 在协程内部调用时如何确保某些命令在 UI 主线程上运行?