2016-09-02 15 views
0

TcpClientを使用するC#プラグインを使用してUWPアプリケーションを1つに構築しようとしています。プラグインは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が正常にインストールされました。しかし、私は再びビルドを試みたときに同じエラーが発生しました。ここに私のpackages.configファイルは次のとおりです。

<?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?

私はすべて書き換え考えられてきましたStreamSocketを操作するコードの一部です。しかし、元のコードを書かなかったので、これは難しく、エラーが起こりやすいでしょう。

私が扱っているコードは、Brekel Pro Face 2に含まれているデータストリーミングスクリプトです。コードからいくつかのスニペットを投稿しますが、Brekelがそれでいいのかどうかはわかりません。

アイデア?

答えて

1

問題

Unityは、.NETプラットフォームのDLLするプラグインを必要とモノを、標的とします。ただし、HololensはWindowsユニバーサルアプリケーションをサポートしています。これは、プラグインがユニバーサルウィンドウプラットフォーム(UWP)DLLである必要があります。したがって、UnityとHololensの両方に同じプラグインを使用することは不可能です。それがUnityのために働くなら、Hololensのための建物は失敗するでしょう。

溶液

溶液は、プラグインの2つのバージョンを使用することです。 .NETプラットフォームのDLLとUWP DLLが含まれています。両方のDLLは、同じコードを使用している2つのDLLのいずれかからクラス、メソッドなどを参照できるように、同じインタフェースを持つ必要があります。

ソリューションは

は、あなたが(すなわち、名前空間、公共のクラス名など)は、2つのDLLファイル(x.dll)と同じインターフェイスを持つ(x.uwp.dll)を作成したと仮定した場合、手順、ソリューション

  1. UnityプロジェクトのAssetsフォルダの下にPluginsフォルダを作成します。
  2. (x.dll)ファイルをPluginsフォルダにドラッグアンドドロップして選択します。
  3. プラグインのプラットフォームを選択するインスペクタウィンドウで、エディタのみがオンになっていることを確認します。
  4. [プラグイン]フォルダの下にWSAという名前のサブフォルダを作成します。
  5. (x.uwp.dll)ファイルをWSAフォルダにドラッグアンドドロップして選択します。
  6. プラグインのプラットフォームを選択するインスペクタウィンドウで、WSAPlayerのみがオンになっていることを確認します。

あなたのマシンでプロジェクトを実行するときにUnityはx.dllを使用し、Hololensのプロジェクトをビルドするときはx.uwp.dllを使用します。

関連する問題