[unity AAS] Addressable 名を自動でコード定義する

以前投稿した記事のリファインです。

なにをするのか

アセット名を const string で列挙し、自動生成

まずはこれです。

Addressables.LoadAssetAsync<Object>("SceneAdv")

Addressables.LoadAssetAsync<Object>(AddressableConst.SceneAdv)

アセット名を文字列で直接指定すると、タイプミスがあったり、名前変更時にコードの問題に気づかないなど、開発後期になるほど頭の痛い不具合を起こしがち。

これをなくすよう、自動的に const で定義しようというエディタ機能です。
以下のコードが、AAS ビルド時に自動生成されます。

ファイルだけでなく、ラベル名も登録されます。
なお、00_filename のような名前は _00_filename と先頭に「_」(アンダーバー)が付加されます。
「-」(ハイフン)についても「_」に変換されます。
(C# で許される変数名に自動変換します)

Addressable に、指定された名前のアセットが登録されているか確認

2023 現在の AAS では代替手段があるかもしれませんが(未調査)、以下のコードで AAS に登録のあるファイル(またはラベル)か確認できます。
そもそも const を使っている限り不要ですが、地味に必要になるケース(ファイル名を文字列連結で作り出す場合など)があるので用意しました。

AddressablesKey.Contains("SceneAdv")

ダウンロード

GitHub の Assets/Editor/AddressableKeyList を自分の環境にコピーしてください。

使い方

Tools > Addressable > Create AddressableKeyList より、自動生成されるコード名を設定します。

Create で生成され、以後は AAS をビルドする度、自動的に作成されるようになります。

(番外)アセット名は Simplify Addressable Names をオススメします

言われずともそうしている方が多いと思いますが、念のため。

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA