Как использовать SignalR в Unity3d?

У меня есть причина использовать SignalR в Unity, я решил пойти с Microsoft.AspNetCore.SignalR.Client из NuGet.

Я пробовал пакет Nivot.SignalR.Client.Net35, но он использует AspNet.SignalR.Client, который больше не используется, я создал все, что мне нужно, в своем решении WebApi, используя Microsoft.AspNetCore.SignalR, затем я изменил в своем Проект Unity в PlayerSettings Scripting Tuntime Version.NET 4.x Эквивалент и уровень совместимости Api с.NET Standard 2.0, который совместим с AspNetCore.SignalR.Client.

Но после установки пакета в visual studio при редактировании скриптов я пытаюсь его использовать. Visual Studio сохраняет спокойствие, но Unity говорит, что пространство имен Microsoft.AspNetCore.SignalR.Client не существует. Я прочитал, что мне нужно скопировать их в папку в папке "Активы", поэтому я сделал это, а затем Unity сказал: "Разгрузка сломанной сборки Assets/Packages/Microsoft.AspNetCore.SignalR.Client.dll, эта сборка может привести к сбоям в время выполнения ", и оно не работает.

Я потерял надежду. Но потом я вспомнил, что есть Stackoverflow, поэтому теперь я надеюсь, что кто-то здесь может мне помочь. Благодарю.

Ответ 1

Я наткнулся на эту ссылку:

проверьте ее ответ, который она попала в себя. вы arent, используя ядро signalR, вы? что не будет работать...

"В настоящий момент ядро SignalR, которое я хочу использовать, не может работать с union3d еще, поскольку оно нестабильно, и многое должно быть разобрано до того, как оно может быть использовано.

Я нашел учебник (но на немецком), который работает для меня. SignalR (не ядро) использует версию 2.1.1 и чтобы она работала со сборкой, вам нужно заставить вас изменить совместимость api с.Net 2.0 (не подмножеством) "

вы можете поблагодарить @kim, если он работает.

Ответ 2

Вам придется нацеливаться на .net framework вместо .Net Standard 2.0 в вашем проекте Unity, потому что нет ядра Core сигнализатора, нацеленного на .Net Standard 2.0, как это делает Unity. До тех пор, пока Unity не обновится до 2.2 или 3.0, нам не повезло, чтобы клиентская часть SignalR Core lib работала с Unity.

В качестве альтернативы, вы можете попробовать использовать другую реализацию .net websocket на стороне клиента в Unity.