Page 1
Unite2014Unity5.0 アセットパイプライン/アセットバンドル
Page 2
アセットバンドル
• アセットをなんでもひとまとめにしたもの※アセットは色んな画像とか音声とかスクリプトとかのデータの総称
Page 3
どういうときに使うか?
•後から一部データをDLしたいときとか
•後からアップデートに配信したいときとか
特にメインどころだけとかの制限はない
Page 4
どうやっていた?
•今までは大量で複雑なエディタースクリプトが必要だった。。。
• そのためにリソースに厳密なルールを決めてやらないといけなかった。。。
•依存関係など解決はとくに面倒。。。
Page 5
Unity5での目標
•簡単に
• スクリプトはなしに
•依存関係はエディターでお手軽に設定できるように
•時間短縮
Page 6
今のUnity5の状態
•比較的簡単なUI
•依存関係をエディターで設定できるように
•自動で依存関係を構築できるように
• マニフェストファイルでアセットバンドルの情報が確認できるように
•変更されたもののみアセットバンドルが更新されるように
• まだスクリプトが少しだけ必要。。。
Page 7
マニフェストって?
• アセットバンドルの情報が入っているテキストファイル• 入っているファイル名
• CRCやハッシュ
• 依存関係• 等
• これをパースしていいように使ってもOK
Page 8
将来的に
• スクリプトは完全に0へ
• もっと簡単、簡潔に
•バンドル用のBuildSettingsのようなものを用意
Page 9
•今回の変更はエディターのみなので、実行中の挙動なんかは変わらない
• アセットバンドルの機能はあいかわらず、Pro版のみ
Page 10
マルチシーンエディティング
•複数のシーンを同時に編集できる!
Page 11
既存の問題点
•複数のシーンをLoadLevelAdditiveなどを使ってゲームを作っている場合に同時に編集できなかった
• その為片方のシーンを変更して、それに合わせるためにもう片方のシーンを開いて調整して…といったことも起きていた
•作業の分割は出来たが、複数のシーンの絡みを確認するのが面倒だった
Page 12
複数対応
• 1つのアクティブシーンと、複数のサブシーンという形で2つ以上のシーンファイルを編集できるように• サブシーンの追加はエディターのヒエラルキーにシーンファイルをドラッグ&ドロップすることで可能
•新たに追加されたSceneMangerを使用することでシーン単位でのGameObjectの追加、削除が可能に• 今までのように必要なGameObjectをどこかに登録したり、探したりして消す必要が無くなった
Page 13
•今までのApplication.LoadLevel*は使用せず、SceneManager.LoadLevel*を使用することで恩恵を受けれる
• いままでうまくいかなかったライトマップやオクリュージョンカリングなどもうまくいくようになっている
• メモリ使用量はApplication.LoadLevel*と大して変わらないはず