これは簡単に言えば、サーバーからダウンロードしたファイルをキャッシュし、以降はそのファイルを使うといった操作を簡単に行えるようにした物。
要するにダウンロードコンテンツ。
一度キャッシュしたものは、以降はオフラインで使用できる
対応ファイルは現状は「テクスチャ(画像)」と「テキスト(文章)」と「AssetBundle」の3種類。パッケージ
https://dl.dropbox.com/u/56297224/UnitySumple2/download%20assets.unitypackage
用途的には、Basic(非Pro)でアプリサイズを減らす目的と、Apple Storeを通さずにアプリを更新出来るようにする2種類。
AssetBundleは同系の技術で出来そうだったので追加しただけ。WWW.LoadFromCacheOrDownloadは最速かつ低メモリだが、ダウンロード中のタイムアウトが出来ないので、その辺りをカバーする目的もある。
基本的な技術は全部このブログに書いてあるので、同じような物は作れると思う。
ただ欠点も同様で、やはりメモリ帯域をアホみたいに使う。つまりカードゲームのカードには使えるが、演出を拘るとか沢山のカードを使いたい場合はAssetBundleを使った方が幸せになる気がする。
やはりPvrtcやATC等に圧縮したリソースをアプリ内もしくはAssetBundleから取得したほうがパフォーマンスが圧倒的に良いので、その辺りも含めて使い所を間違えないようにすべき。
一応iOS(pro)とAndroid(basic)とPC(basic)で確認済み。
iOSのBasicでも多分動くと思うけど、動作報告くれると嬉しい限り。
■URL先のファイルを確認する機能
一応ユニークな機能としてURL先のファイル(ダウンロードするファイル)を確認する機能を追加した。これで参照しているファイルが一目でわかる。
この技術はStreamingAssetsにも応用できそうなので、今度作ろうと思う。
ちなみにProperty Drawerはリアルタイム更新ができないっぽいので、エディタ拡張で何とかした。
欠点としてInspectorを開いていないとダウンロードしてくれない問題がある。これはリソース一覧を取得してダウンロードする機能を追加して対処しようと思う(予定)。
■ダウンロードしたリソースを綺麗にする機能
オマケでキャッシュ済みファイルを一括削除する機能も追加した。
この手の機能はダウンロード後にファイルを破棄しないと正常に動いているのか確認がしにくいので追加した。またファイル個別単位の削除機能も一応ある。が、これは余りクールではないので、改善案があれば治したい所。
使い方は明日にでも。
使い方
tsubakit1.hateblo.jp
実はコレ、元々は水着娘に使われている技術だが、現在の知識で再構築したもの
(過去の自分に、何であんな実装したのか問い合わせたい)