この記事でのバージョン
Unity 2017.1.1f1
はじめに
AssetBundleを生成する時にはアセットのアセットバンドル名を設定する必要があります。
Inspector上から手動で設定する事も可能ですが、
量が増えてると面倒だし、なにより間違いが起きる可能性もあるので自動化したいですよね?
今回はそんな時に使える、アセットのアセットバンドル名をプログラムから設定する方法のご紹介です!
assetBundleName
アセットバンドル名をプログラムから設定する際、
対象のアセットをそのままロードしても設定は出来ません。
ではどうするのかと言えばAssetImporterを使います。
例えば以下のような構成で、
Playerというprefabに、Playerというアセットバンドル名を付けたい時は以下のような感じです。
//AssetImporter取得。パスはAssetsから、拡張子も付ける(ディレクトリは拡張子なし) AssetImporter importer = AssetImporter.GetAtPath("Assets/Prefabs/Player.prefab"); //アセットバンドル名を設定(Noneにしたい場合は""にする) importer.assetBundleName = "Player"; //設定を保存 importer.SaveAndReimport();
アセットだけでなく、ディレクトリも同じ方法でアセットバンドル名を設定出来ます。
ただし、アセットバンドル名に大文字は使えないので注意が必要です。
なお、アセットのパスが知りたい時は、AssetDatabase.GetAssetPathを使います。