Unity for Creative 第3回!!「Unity × WebGL 開発最前線!!〜実践ノウハウ&メリット〜」 ※好評につきちょっとだけ増席しました。 : ATND
https://atnd.org/events/84444
検証環境
- Unity 5.4.3
- Chrome 56.0.2924.87(64bit)
問題点
- データ保持
- バトル処理の負荷
- 動画再生
データ
・画像
・音声
・動画
・イベントページ
以上のものをAssetBundle化し、サーバへ
- WWW.LoadFromCacheOrDownloadを使用してダウンロード
- WebGL の場合には IndexedDB に保存される
IndexedDB保存場所
~/Library/Application Support/Google/Chrome/Default/IndexedDB
C:\Users\ユーザー名\AppData\Local\Google\Chrome\User Data\Default\IndexedDB
- ロード時や戦闘時に画面が止まる→メモリの圧迫が原因
- 解決方法「DL方法をWWWに変更」
- キャッシュはブラウザのキャッシュに任せる
- 注意点:ブラウザのキャッシュによりダウンロードされない事が有る→URLの末尾にハッシュ値などを付ける
Indexed DBを使った時の起動速度
AssetBundle | 起動速度 |
---|---|
0 | 約11秒 |
100MB x 10 | 約19秒 |
100MB x 100 | 約23秒 |
1MB x 1000 | 約26秒 |
動画再生
※ Unity 公式のアセット
Simple MovieTextures for Unity WebGL - アセットストア
https://www.assetstore.unity3d.com/jp/#!/content/38369
不都合な点
- 「Simple MovieTextures for Unity WebGL」は URL 直叩きで指定されていた
修正
- AssetBundleでダウンロードしてきた動画ファイルのbyte配列 → 内部でBlobデータを作成
- vide.src = URL.createObjectURL(blob.data);