如何在Unity3d中使用SignalR?

时间:2018-08-29 13:43:22

标签: unity3d nuget signalr

我有一个在Unity中使用SignalR的理由,我决定使用NuGet的Microsoft.AspNetCore.SignalR.Client。

我尝试了一个软件包Nivot.SignalR.Client.Net35,但是它使用了不再使用的AspNet.SignalR.Client,我已经使用Microsoft.AspNetCore.SignalR在WebApi解决方案上创建了所需的一切,然后在Unity项目中的PlayerSettings脚本Tuntime版本.NET 4.x等效和Api兼容级别中更改为.NET Standard 2.0,该版本与AspNetCore.SignalR.Client兼容。

但是当我在编辑脚本的同时将文件包安装到Visual Studio中并尝试使用它时,Visual Studio保持冷静,但是Unity表示Microsoft.AspNetCore.SignalR.Client名称空间不存在。 我读到我必须将它们复制到Assets文件夹中的文件夹中,所以我做到了,然后Unity说:“卸载损坏的程序集Assets / Packages / Microsoft.AspNetCore.SignalR.Client.dll,此程序集可能会导致崩溃运行时”,它不起作用。

我失去了希望。但是后来我想起了Stackoverflow,所以现在我希望这里有人可以帮助我。谢谢。

4 个答案:

答案 0 :(得分:0)

我遇到了这个link

查看她的答案,她最终发现了自己。您不是使用signalR核心吗?那行不通的...

“此刻,我要使用的SignalR Core尚不能与unity3d一起使用,因为它不稳定,并且在使用前必须解决很多事情。

我找到了一个适用于我的教程(但德语)。 SignalR(非核心)正在使用2.1.1版,并且要使其与构建一起使用,您需要将api兼容性更改为.Net 2.0(而非子集)“

如果可以使用@kim,可以表示感谢。

答案 1 :(得分:0)

在Unity项目中,您必须定位.net框架而不是.Net Standard 2.0,因为那里没有信号器Core可以像Unity那样针对.Net Standard 2.0。在Unity更新到2.2或3.0之前,让客户端SignalR Core lib与Unity配合使用是我们的运气。

或者,您可以尝试在Unity客户端上使用其他.net websocket实现。

答案 2 :(得分:0)

您的错误与缺少依赖项有关。

使用最新的稳定二进制文件,SignalR客户端和服务器均可在Unity3D中运行。您可以在AspNetCoreAspNetCoreClient1.1.0目录中找到here所需的最少DLL集。包括关联的.meta文件。访问该项目的设置以进行正确的配置。

您无法在Unity3D中正确使用nuget,因为它有很多错误。

答案 3 :(得分:0)

有一个支持 SignalR 的新插件:
https://assetstore.unity.com/packages/tools/network/best-http-2-155981
它支持:
1-信号R。
2- WebSockets。
3- Socket io.
4- 服务器发送的事件。

它是一个跨平台插件,支持 HTTP2 动词和 gRPPC。