我有一个在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,所以现在我希望这里有人可以帮助我。谢谢。
答案 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中运行。您可以在AspNetCore
和AspNetCoreClient1.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。