読者です 読者をやめる 読者になる 読者になる

デジタルフロッグ

Unityのアプリの開発をしながらいろいろと忘れないための備忘録でございます。

アセットバンドルを使ってみよう AssetBundle

まったくこの辺使ってなかったので新しく覚える為にやった事をザザッとまとめていこうと思います。

 

バンドルとは?
ある製品に別の製品が付属して販売、あるいは配布すること。パソコンを「買ってすぐ使える」状態で販売するために、あらかじめOSやアプリケーションソフトをインストールしておくことなどを指す。

e-words.jp


アセットバンドルとは?

選択したアセットを 1つにまとめて Unity からエクスポートできるファイルです。これらのファイルは専用の圧縮フォーマットを使用してアプリケーションからオンデマンドでロードできます。これによりモデル、テクスチャ、オーディオクリップ、または使用されるシーンから切り離してシーン全体などのコンテンツをストリーミングすることができます。

docs.unity3d.com

 

アセットバンドルを作成してみよう

まず最初に適当にtestという名前の.pngファイルを突っ込んでSpriteにしuGUIのImageに当てはめてそのuGUIをプレハブ化しておきました。

 

f:id:karaagedigital:20161112180226p:plain

画像最初にtest.pngをクリックしてInspectorの下の方からAssetBundleとあるのでその右側のNoneをクリックしてNewを選択し、bundleの名前を入力します。

f:id:karaagedigital:20161112180429p:plain

今回はmyfirstassetbundleという名前にしました。パスカル型で記述しましたが、全部小文字にされたので読みづらい…

同じバンドルにアセットを追加する場合はInspectorウィンドウ一番下のメニューから同じ名前のバンドルを選択して割り当てます。

 

f:id:karaagedigital:20161112180528p:plain

初期値ではNoneに設定されているのでプロジェクト本体とともにパッケージ化されます。


公式ドキュメント

http://docs.unity3d.com/ja/current/Manual/BuildingAssetBundles5x.html

に記載されているようにアセットバンドルをエクスポートするにはスクリプトが必要になります。


using UnityEditor;

public class CreateAssetBundles
{
 [MenuItem ("Assets/Build AssetBundles")]
 static void BuildAllAssetBundles ()
 {
  BuildPipeline.BuildAssetBundles ("Assets/AssetBundles",BuildAssetBundleOptions.None, BuildTarget.StandaloneOSXUniversal);
 }
}

そうするとメニューのAssetsからBuild AssetBundlesというメニューが追加されます。

f:id:karaagedigital:20161112180646p:plain

Testというディレクトリでやっていましたが、BuildPipeline.BuildAssetBundles ("Assets/AssetBundles", BuildAssetBundleOptions.None, BuildTarget.StandaloneOSXUniversal);


"Assets/AssetBundles"がディレクトリを指定しているみたいなので、今回は合わせてAssetBundlesとディレクトリ名を変更しておきました。

f:id:karaagedigital:20161112180839p:plain

それでは実際にBuild AssetBundlesを実行してみましょう。

 

f:id:karaagedigital:20161112181001p:plain

f:id:karaagedigital:20161112181002p:plain

myfirstassetbundleディレクトリが作成されており中にはアセットバンドルとマニフェストファイルが入っており、マニフェストファイルにはアセットバンドルに含まれているファイルが記載されています。

f:id:karaagedigital:20161112181009p:plain

 こんな感じでPrefabとSpriteのアセットバンドルとマニフェストファイルが出来ました。

それでこれをサーバーに配置してそこから引っ張ってきて使用するわけです。

一先ずアセットバンドルの作成までという事で次回の記事につなげたいと思います。。。(+_+)

 

それにしても忙しくてまたかなり更新の間隔があいてしまった…