2016-09-02 5 views
0

TcpClient를 사용하는 C# 플러그인을 사용하여 UWP 앱을 단일하게 만들려고합니다. 플러그인은 System.Net.Sockets를 사용합니다. 독립 실행 형 실행 파일을 빌드하면 응용 프로그램이 로컬 컴퓨터에서 완벽하게 실행됩니다. 그러나 Universal 10 플랫폼 용으로 빌드하려고하면 작동하지 않습니다. 내 목표는 Hololens에 앱을 배포하는 것이므로 중요합니다.TcpClient를 사용하여 Unity에서 UWP 응용 프로그램 만들기

나는 콘솔에 오류 CS0246을 얻을 :

The type or namespace TcpClient could not be found (are you missing a using directive or an assembly reference?)

나는 유니티와 함께 ​​작동하도록하여 TcpClient를 받고 비슷한 문제로 실행 한 사람 건너했습니다. 이 솔루션마다 시험판 System.Net.Sockets 4.1 패키지를 설치하려고 시도했습니다. https://github.com/dotnet/corefx/issues/5939

Visual Studio에서 C# 프로젝트를 열었고 버전 4.1을 성공적으로 설치했습니다. 그러나 건물을 다시 만들려고 할 때도 같은 오류가 발생했습니다.

<?xml version="1.0" encoding="utf-8"?> 
<packages> 
    <package id="System.IO" version="4.0.0" targetFramework="net461" /> 
    <package id="System.Net.Primitives" version="4.0.10" targetFramework="net461" /> 
    <package id="System.Net.Sockets" version="4.1.0-beta-23516" targetFramework="net461" /> 
    <package id="System.Runtime" version="4.0.0" targetFramework="net461" /> 
    <package id="System.Threading.Tasks" version="4.0.0" targetFramework="net461" /> 
</packages> 

나는 또한 대신 Windows.Networking.Sockets 패키지에서 StreamSocket을 사용하는이 솔루션을 통해 왔어요 : How to connect to Unity game server socket from UWP app via sockets?

난 그냥 모든 다시 쓰기로 간주 한 다음 내 packages.config 파일입니다 StreamSocket과 함께 작동하는 코드 그러나 원래 코드를 작성하지 않았으므로이 작업은 어렵고 오류가 발생하기 쉽습니다.

내가 다루는 코드는 Brekel Pro Face 2에 포함 된 데이터 스트리밍 스크립트입니다. 코드에서 일부 발췌 문장을 게시 하겠지만, Brekel이 그 코드로 괜찮은지 확실하지 않습니다.

아이디어가 있으십니까?

답변

1

문제점

유니티는 .NET 플랫폼의 DLL로 플러그인을 필요로 모노를 대상으로합니다. 그러나 Hololens는 Universal Universal Platform (UWP) DLL이 필요한 Windows Universal 응용 프로그램을 지원합니다. 따라서 Unity와 Hololens 모두 동일한 플러그인을 사용할 수 없습니다. 그것이 유니티에 효과가 있다면, 홀로 렌을위한 건물은 실패 할 것입니다.

용액 용액을 플러그인의 두 버전을 사용하는

; .NET 플랫폼 DLL 및 UWP DLL. 두 DLL은 동일한 코드를 사용하는 두 DLL 중 하나에서 참조하는 클래스, 메서드 등을 허용하기 위해 동일한 인터페이스를 가져야합니다.

솔루션

당신이 (즉, 공간, 공용 클래스 이름 등) 두 개의 DLL 파일 (x.dll)와 동일한 인터페이스 (x.uwp.dll)를 만들었다 고 가정 단계, 솔루션 다음과 같이 간단해야합니다 :

  1. Unity 프로젝트의 Assets 폴더 아래에 Plugins 폴더를 만듭니다.
  2. (x.dll) 파일을 Plugins 폴더에 끌어다 놓고 선택하십시오.
  3. Inspector 창에서 플러그인 용 플랫폼 선택 아래의 Editor '만 선택되어 있는지 확인하십시오.
  4. Plugins 폴더 아래에 WSA라는 하위 폴더를 만듭니다.
  5. (x.uwp.dll) 파일을 WSA 폴더로 끌어다 놓습니다.
  6. Inspector 창에서 플러그인 용 플랫폼 선택 아래에서 WSAPlayer 만 선택되어 있는지 확인하십시오.

이제 컴퓨터에서 프로젝트를 실행할 때 Unity가 x.dll을 사용하고 Hololens 프로젝트를 빌드 할 때 x.uwp.dll을 사용합니다.

관련 문제