Unityでビルド後にファイルがStream形式で読み込めなくなった

火曜日 , 14, 8月 2018 Leave a comment

 タイトルの通り、IDEでデバッグしている間や、Build and Runしている間は正常に動作していたのに、ビルドしてexeファイルを実行するとファイルが読み込めなくなった。

 このBuild and Runだと動作するというのが何気に罠な気がする・・・。

 

 どんなアプリケーションでも、ビルド後のバグ取りは面倒なもので、「やっぱりデバッグ用の表示要るよなぁ」とDebugUIなるCanvasを作成して、コツコツ出力を確認する。

 (Unity初心者なので、ビルド後のデバッグの良い方法があるのかもしれないが・・・)

 で、StreamReaderで設定ファイルなどを読み込んでいたところでこけていることが判明。

 

 ビルド後のファイルを眺めてみると、確かに該当ファイルは見当たらない(パッケージされている?)。

 

 対応を調べてみると以下の2つでクリアできそう。

 

1.StreamingAssetsを利用して、ファイルをパッケージ化せずに書き出す

2.Resoucesに配置してResouce.Loadで読み取る

 

 1の方法だと、設定ファイルなどをそのまま配置してしまうようなので、2で対応。

 

        try
        {
            var textAsset = Resources.Load("Config") as TextAsset;

            var config = JsonConvert.DeserializeObject<Dictionary<string, string>>(configText.textAsset);
        }

 

 こんな感じでLoadして、JSON形式のファイルをデシリアライズしてDictionaryとして受け取る。

 

 ファイルが無い場合は例外じゃなくてnullチェックかもしれないなぁと思いつつも、検証する前にブログにメモを残す・・・。

 


Please give us your valuable comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください