이 라이브러리는 .NET 2.0의 Unity, .NET Core의 UWP 및 .NET 4.6 소켓 라이브러리 사이의 비 호환성으로 인해 구축되었습니다.
이 라이브러리를 사용하여 Unity 클라이언트와 UWP 클라이언트 간의 기본 통신을 설정할 수 있습니다. 우리는 네트워크 커뮤니케이션을 위해 Unity와 Hololens 사이 에이 라이브러리를 사용하고 있습니다. 그것은 당신에게 자신의 프로토콜을 변경하고 구현할 수있는 자유를 제공합니다.
이 작업을 수행하면 Unity 프로젝트에서 MixedRealityNetworking 네임 스페이스를 사용해야합니다. .dll은 데스크탑 PC와 Hololens와 같은 UWP 장치에서 작동해야합니다. 자신의 메소드를 라이브러리에 구현하는 경우 메소드가 두 DLL에서 동일하다는 것을 확인하십시오.
우리는 Unity와 Hololens를 사용하여 프로젝트에 모든 종류의 네트워킹 솔루션을 사용해 보았습니다. Unity의 표준 Networkinglibrary "Unet"은 많은 오버 헤드를 가지고 있었고 프로젝트에 통합하기가 쉽지 않았습니다. Microsoft는 Unity와 함께 HoloLens의 Holotoolkit을 출시했습니다. 그러나이 라이브러리는 완전히 OpenSource가 아니며 Windows에서만 실행됩니다. 프로토콜이 OpenSource가 아니기 때문에 전용 Linux 서버로 구현할 수 없습니다. System.net.sockets 네임 스페이스를 UWP로 사용할 수없고 네임 스페이스를 사용할 수 있도록 UWP를 위해 설계된 라이브러리는 .NET 2.0에서 실행되므로 UWP를 위해 설계된 라이브러리를 설치할 수 없기 때문에 일반 C# 소켓 사용은 작동하지 않았습니다. 그래서 우리는 우리 자신을 구축했습니다.
이 라이브러리는 UDP 프로토콜 위에 작은 계층 만 제공하므로 원하는 모든 데이터를 보낼 수 있습니다. 사용하기가 매우 쉽고 자신의 프로젝트에서 사용하기에 쉽게 소모 할 수 있습니다. Peer2Peer를 사용할 수 있지만 예를 들어 전용 서버를 구현할 수도 있습니다.
UDP는 TCP 소켓과 같이 클라이언트를 자동으로 알지 못합니다. 클라이언트가 알려지기 전에 먼저 메시지를 보내야합니다. 2 개의 클라이언트를 연결하는 데 문제가있는 경우 방화벽이 UDP 트래픽을 허용하고 IP 주소와 포트가 올바른지 확인하십시오. UDP 트래픽을 올바른 클라이언트로 라우팅하는 전용 서버를 사용하여 P2P 문제를 해결할 수 있습니다. 그러나 그때까지도; 클라이언트가 알려지기 전에 모든 클라이언트가 서버에 먼저 메시지를 보내야합니다. 서버는 IP 주소와 포트를 저장해야합니다.