目的
スクリプトでの外部ファイル(画像)の読み込み
######どうやら常識のようですが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開発記事一覧
こちらから