url | キャッシュされていない場合にアセットバンドルをダウンロードするためのURL。 '%' はエスケープしなければいけません。 |
version | アセットバンドルのバージョン。以前に同じ version パラメータでダウンロードを行っている場合、キャッシュされたデータをロードします。アプリケーションによってインクリメントされたバージョンをリクエストすることによって強制的に url から最新のアセットバンドルをキャッシングすることが出来ます。
非圧縮コンテンツのCRC-32チェックサム。もしパラメータが0出ない場合はコンテンツをロードする前にチェックサムの比較が行われ一致しない場合はエラーを返します。これはキャッシュされたデータのユーザーによる改竄や改悪、データの破損を避けるために利用されます。CRCが一致しない場合はUnityは再度ダウンロードを試みます。そしてCRCがサーバー側で一致しない場合はエラーを返します。今のCRC値がアセットバンドルに一致しているかはエラー内容から判断することが出来ます。 |
WWW アセットバンドルのロード/ダウンロードが完了した時にデータにアクセスするためのWWWインスタンスを返します。
キャッシュからバージョンで指定されたアセットバンドルをロードします。もしアセットバンドルがキャッシュされていない場合は自動的にダウンロードされローカルストレージから復旧できるためにキャッシュに保存されます。
LoadFromCacheOrDownload() はキャッシングを使用するために "new WWW (url)" の代わりに使用するようにしてください。 キャッシュされたアセットバンドルはファイル名とバージョン番号で管理されています。 URL の全てのドメインやパスはキャッシングでは無視されます。キャッシュされたアセットバンドルはURLの代わりにファイル名で管理しているのでサーバー側のURL構成(ディレクトリ構成)は自由に変更することが出来ます。これは新しいバージョンを出した時ブラウザやCDNにキャッシュされないようにするために便利です。キャッシュを共有するWebPlayerの場合、アプリケーションの間でキャッシュが衝突してしまうのを防ぐためにユニークな識別子を追加して保持します。 もし、キャッシュフォルダに追加できるファイル領域がない場合はキャッシュしようとしているファイルの領域が空くまでLoadFromCacheOrDownloadで追加された最も使用頻度の低いアセットバンドルから削除していきます。もし利用可能なファイル領域を確保できない場合(キャッシュされているアセットバンドルを全て使用している場合や、HDDの要領がいっぱいな場合)はLoadFromCacheOrDownloadは "new WWW()" の呼び出しと同じようにメモリ上に展開しストリーミングします。 AssetBundleは1フレームに1つダウンロードを終了させることができます。 この関数はAssetBundleのアクセスのみに使用することが出来ます。それ以外のタイプやコンテンツはキャッシュ出来ません。 Note: URLは '%' をエスケープしなければいけません。
function Start () { var www = WWW.LoadFromCacheOrDownload ("http://myserver.com/myassetBundle.unity3d", 5); yield www; if (!String.IsNullOrEmpty(www.error)) { Debug.Log (www.error); return; } var myLoadedAssetBundle = www.assetBundle; var asset = myLoadedAssetBundle.mainAsset; }