目的
スクリプトでの外部ファイル(画像)の読み込み
どうやら常識のようですがHoloLensにビルドする際のファイルの扱い方を知らなかったのでメモ
前提
- ドラッグ&ドロップで読み込み
- スクリプトで読み込み
上記の前提のため、シーンに予め画像を埋め込んでおくなどは想定していません。
Windows Storeアプリケーションでは.CLose()メソッド使えないためStreamReaderは.Dispose()メソッドで閉じる。
画像読み込みの際、BinaryReaderも使えなかった為、Resourse.Load()で代用(こっちのほうがシンプル)
失敗例
FileInfo file = new FileInfo(Application.dataPath + "PATH");
問題
FileInfoの際のApplication.dataPathの参照位置
Unity内で走らせる分には問題ないが、HoloLens上で走らせるとHoloLens内のストレージを探してしまうため読み取りが正常に行われない。
解決策
streamingAssetsPathを使う
スクリプトリファレンス Application.streamingAssetsPath
Streaming Assets Path (docs.unity3d)
.
└── Assets
└── StreamingAssets
└──Data
└──example.png
そして
FileInfo file = new FileInfo(Application.streamingAssetsPath + "PATH");
Assets/StreamingAssetsに欲しいファイルを格納するとビルド時に彼らをHoloLens内まで連れてってくれる模様。
スクリプトリファレンスによるとプラットフォームによっては他の対応をしなければならないみたいだけどとりあえずのところHoloLensでは大丈夫。
同時にJsonOBJECTの動作も確認。
結論
安心
HoloLens開発記事一覧
こちらから