テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

【Unity】AddressableでAssetBundleをビルドすると link.xml も自動で生成される

f:id:tsubaki_t1:20190317204037j:plain

AddressableでAssetBundleをビルドしている場合、自動的にlink.xmlが生成されます。

Addressableがlink.xmlを生成する

Addressableをビルドする際、StreamingAssetsに幾つかのファイルを自動的に生成します。

f:id:tsubaki_t1:20190317204539j:plain

このlink.xmlですが、AssetBundleに含まれるべきアセンブリの一覧が登録されています。なので、ストリップ対策のlink.xmlがまだ無ければそのまま、既にあるなら生成されたlink.xmlの中身を移植することで、AssetBundleでしか使わないコードが剥がされるのを回避出来ます。

f:id:tsubaki_t1:20190317204808j:plain
AssetBundleでしか使わないコードも自動で追加される

なおlink.xmlファイルはStreamingAssetsに追加されてしまうので、出来ればAssets以下に移動したほうが良いです。

link.xmlを作成しているコード

作成しているのは、BuildScriptPackedMode.BuildData(...)です。

正しくはこのコードにAddressableのビルド作業は大体含まれます。ContentPipeline.BuildAssetBundles()が出力するIBundleBuildResultsの中にアセンブリが全部入ってるので、ソレをlink.xmlに出力している感じです。Scriptable Build Pipeline様様です。

f:id:tsubaki_t1:20190317211038j:plain

関連

BuildScriptPackedMode.BuildDataを読むなら知っておいたほうが良いかも

tsubakit1.hateblo.jp

link.xmlの問題について

tsubakit1.hateblo.jp

SRB以前(マニフェスト)を使用していた場合

tsubakit1.hateblo.jp