Addressableの重複アドレスや依存グループチェック機能を作るUnityAddressableAssetsはじめにAddresabblesを使うには便利機能が足りていない部分があるので自作していきます。Systemの使用方法と自動化の機能調査の続きとなる内容です。version1.5.0スクリプトを作る重複アドレスチェックアセットにユニークなアドレスを設定しロードを簡単に書けるということですが、重複したアドレスを設定することができます。この状態でもビルドは成功します。アドレスが重複しているときは最後に追加されたアセットをロードしてきます。このときも特に警告やエラーログは出ません。アドレスの命名規則を決めておき重複しないように運用できていればいいですが、重複アドレスが無いかのチェックを行いましょう。}並び替えAddresabblesGroupsのGUI上ではGroupを並び替えることが手動でできます。Group内をPathで並び替えはできましたがなぜかGroup自体の並び替えはできませんでした。内部的な並びはAddressableAssetSettings.groupsのソートすれば変わるようですがGUI上は画面が更新されない限り変わりませんでした。GroupNameの欄をクリックするか、インポート時やコンパイル時に反映されました。}文字列の大きさ比較してソートをするだけです。このままでは不便すぎるので、Addresabblesのソースコードを書き換えてGUI上も更新させます。スクリプトリファレンスのGUIのページにはAPIについて載っていないので勘で探します。GroupsのGUIはAddressableAssetEntryTreeView.csで描画されています。UnityEditorのTreeViewを継承しています。Reload関数を呼ぶことで強制的にデータを再読み込みさせられるとあるので呼べるようにしていきます。いうメンバでインスタンスを持っています。このAddressablesAssetWindowを取得して、TreeViewのReloadを呼び出します。AddressableAssetWindowにReload関数を追加します。AddressableAssetWindowクラスをpublicにする。エディタウィンドウを取得してReload関数を呼び出す。}これでソートを実行するとGUI上もソートできました。空グループ削除アセットの管理が変わってグループが必要なくなった時に、空グループは自動で削除されてほしい場合があります。グループのアセットエントリ数をカウントして0ならば削除するだけです。デフォルトグループの判定もあるので0かつデフォルトグループではない時に削除します。}依存関係チェックアセットがどのグループに依存しているかをチェックする仕組みを作り、依存関係による巨大なバンドルが作られないようにします。依存自体はAssetDatabase.GetDependenciesで取得できるので、このAPIとグループ内のエントリを調べていきます。注意としてアセット数が千や万を超える膨大な数になると全アセット検索をしては数分かかるので、適宜フィルタリングをする必要が出てきます。}グループの設定はこの状態で、prefabB.prefabのスクリプトがprefabC.prefabを参照しています。検索結果のログはこうなります。GroupCに依存しています。おわりにAddresabblesはver1.5.0になりバグも減っていると思います。APIも十分あり処理をフックして自前の処理に置き換えることもできるので、それぞれのプロジェクトに応じて拡張をしていくことも可能です。足りない機能はそれぞれ自作していきましょう。upLoginユーザーは見つかりませんでした。