2016-11-13 5 views
2

新しいStreamReaderを初期化してテキストファイルからテキストデータを読み込むC#を使用してUnityで書かれたプログラムがあるUnityのresourcesフォルダに保存しました。 Unityでの再生をクリックすると、すべてがうまく動作します。すべてが機能し、テキストが完全に読み込まれて表示されます。しかし、HoloLensエミュレータ(プラットフォーム:Windowsストア、SDK:ユニバーサル10、ビルドと実行:ローカルマシン)を介して実行するためにビルドしようとすると、エラーが発生する:エラーCS1503:引数1:変換できません'string'から 'System.IO.Stream'に変更します。UnityからHoloLensへのプログラムの問題 - 'string'から 'System.IO.Stream'に変換できない

StreamReaderのコンストラクタに文字列パラメータを受け入れるオーバーロードがあるため、このエラーが最初に表示される理由はわかりません。次のように

私のコードは次のとおりです。

string metadata = String.Format("/Resources/.../metadata.txt", list); 
if (File.Exists(Application.dataPath + metadata)) 
{ 
    using (StreamReader sr = new StreamReader(Application.dataPath + metadata)) 
      { 
        // .... 
      } 
} 
+1

パラメータとしてファイル名をとりますが、ストリームだけをとるストリームリーダーはオーバーロードされていないと仮定することができます – Steve

+0

通常のSystem.IO.StreamReaderに文字列オーバーロードがあります。 ? – XerShade

+0

私は通常のSystem.IO.StreamReaderで文字列のオーバーロードを使用していると思います。Application.dataPathは文字列を返し、メタデータは文字列です。これを正しく実行するには、 "using System.IO"が必要です。 Unityを介して再生ボタンをクリックすると、すべてがコンパイルされて正常に動作します。しかし、Windowsアプリケーションとしてビルドしようとすると、質問に記載されているコンパイルエラーが発生しています。 – whycodingsohard

答えて

3

私は他の人に同意しますが、これはおそらく、エディタのモノとUWPアプリケーションを入手するためにコンパイルしている.netとの間の相違に起因します。これを代わりに試してください:

using(StreamReader sr = new StreamReader(new FileStream(Application.dataPath + metadata, FileMode.Open))) 

これは法的なモノと.netコードである必要があります。

+0

FileStreamを作成し、それを使用してStreamReaderを初期化しました。私はVisual Studioでコード化し、すべてが.NETであるべきだと思った。私はまだ問題が何であるかについて完全には分かっていないが、解決策にはとても感謝する。私のプログラムは今、holoLensエミュレータを構築し、展開することができます。 – whycodingsohard

1

APIがUWPのユニティモノと.NETの間にいくつかのケースで異なります。 StremReader(文字列)ctorがUWPバージョンに存在しない可能性があります。

例えば、私はDelegate.CreateInstanceがエディタで動作するが、Hololensで失敗し、別のバージョンが必要な場合がありました。

マクロ内のものをラップすることも、UWPが必要とするものを使用することもできます。

+0

私はVisual Studio C#でコーディングしていますが、Monodevelopは使用しません。 – whycodingsohard

+1

MonoとMonoDevelopは2つの異なるものです。 Monoは、VSを使用している場合でも、Unityで使用するフレームワークです。 MonoDevelopは、Monoフレームワークを開発する人々によって開発されたIDEです。 Monoフレームワークは.NET 3.5とUWPのVS(一度Unityからビルドし、ソリューションをダブルクリックする)を加えたものです。これは.NET UWPバージョンです。最近では、利用可能なクラスにいくつかの制限があります。 – Everts

関連する問題