はじめに 当ブログで紹介してきた Addressable Asset System に関する記事を 140 件以上まとめました 注意 古いバージョン(1.6.2 など)のころに書いた記事も混ざっているため 最新のバージョンだと既に動かないプログラムが紹介されていたりする可能性があ…
概要 protected override async void Execute() { Exception exception = null; var result = await System.Threading.Tasks.Task.Run ( () => { try { var catalogs = new List<IResourceLocator>( m_DepOp.Result.Count ); for ( int i = 0; i < m_DepOp.Result.Count; i++ )</iresourcelocator>…
ソースコード /// <summary> /// 指定されたアドレスに紐づくアセットが存在する場合 true を返します /// </summary> public static async Task<bool> Exists( object key ) { var handle = Addressables.LoadResourceLocationsAsync( key ); await handle.Task; return handle.Statu</bool>…
ソースコード using System.Linq; using System.Threading.Tasks; using UnityEngine; using UnityEngine.AddressableAssets; public class Example : MonoBehaviour { // ローカルカタログの読み込みに失敗した場合、 // 以下のようなエラーや例外が発生す…
ソースコード using System.Linq; using System.Threading.Tasks; using UnityEngine; using UnityEngine.AddressableAssets; public class Example : MonoBehaviour { // リモートカタログのダウンロードの通信に失敗した場合、 // 以下のようなエラーや例…
ソースコード using System.Linq; using System.Threading.Tasks; using UnityEngine; using UnityEngine.AddressableAssets; public class Example : MonoBehaviour { // リモートカタログのダウンロード時にディスクの空き容量が不足している場合 // 以下…
ソースコード using System.Linq; using System.Threading.Tasks; using UnityEngine; using UnityEngine.AddressableAssets; public class Example : MonoBehaviour { // リモートカタログのファイルが破損している場合、 // 以下のようなエラーや例外が発…
概要 Addressables を導入しているプロジェクトからゲームをビルドして Profiler を見た時に 「DiagnosticEventCollectorSingleton.Update()」というプロセスで 1.2 KB の GC Alloc が定期的に発生している場合 AddressableAssetSettings の「Send Profiler …
概要 Addressables 1.18.16 あたりから AssetReference のコンストラクタで /// <summary> /// Construct a new AssetReference object. /// </summary> public AssetReference() { #if UNITY_EDITOR EditorApplication.playModeStateChanged -= ReleaseHandleWhenPlaymodeState…
概要 Chrome を開いてアドレスバーに chrome://tracing と入力します Load ボタンを押して Unity プロジェクトのフォルダに存在する Library/com.unity.addressables/AddressablesBuildTEP.json を選択します これで Addressables のビルド時間の内訳を Chro…
概要 Unity の Preferences を開いて左メニューで「Addressables」を選択して 「Debug Build Layout」をオンにした状態で Addressables でビルドすると ビルド結果の詳細が Library/com.unity.addressables/ フォルダに buildlayout.txt というファイルで出…
概要 上記の公式の Addressables のサンプルリポジトリの 「Advanced > Play Asset Delivery」フォルダに Addressables で Android の Play Asset Delivery に対応する サンプルプロジェクトが格納されています
概要 Addressables のグループの Inspector で 「Use UnityWebRequest for Local Asset Bundles」をオンにすると Android でローカルアセットバンドルの読み込みが速くなる場合があります 参考サイト様
概要 Addressables のグループの Inspector で「Asset Bundle CRC」を「Disabled」にすると アセットバンドルの読み込みが速くなる場合があります 参考サイト様
ソースコード using System.Linq; using UnityEngine; using UnityEngine.AddressableAssets; public sealed class Example : MonoBehaviour { public AssetReference m_assetReference; private void Start() { var handle = Addressables.LoadResourceLoca…
検証環境 Unity 2021.2.7f1 Addressables 1.19.15 概要 AddressableAssetSettings の Inspector の 「Build > Build Addressables on Player Build」を変更することで ゲームをビルドする時に自動で Addressables のビルドを実行できるようになります 項目 …
ソースコード using System.Linq; using UnityEditor; using UnityEditor.AddressableAssets; using UnityEditor.AddressableAssets.Settings.GroupSchemas; using UnityEngine; public static class Example { [MenuItem( "Tools/Hoge" )] public static vo…
検証環境 Windows 10 Unity 2020.3.13f1 Addressables 1.19.11 検証方法 スプライトが格納されているフォルダにアドレスを割り振った場合と フォルダ内のスプライトそれぞれにアドレスを割り振った場合で ビルド時間や成果物に違いはあるのか検証 検証結果 …
検証環境 Windows 10 Unity 2020.3.13f1 Addressables 1.19.11 検証方法 10,000 個の Scriptable Object を用意して すべての Scriptable Object にアドレスを割り振って Default Local Group に追加して Default Local Group の Bundle Mode を 「Pack Sepa…
概要 Addressable ではビルドキャッシュが実装されているため アセットバンドルに含めるアセットを変更していない場合、 該当のアセットバンドルのビルドはスキップされてビルド時間を短縮できるが、 アセットを変更していないのにビルドに時間がかかる場合…
概要 com.unity.scriptablebuildpipeline@1.19.3/Editor/Shared/BuildTasksRunner.cs 上記のファイルに記載されている BuildTasksRunner.Run メソッドの foreach (IBuildTask task in pipeline) { var sw = Stopwatch.StartNew(); // ★ { try { if (!tracker…
検証環境 Windows 10 Unity 2020.3.13f1 Addressables 1.19.11 検証方法 1,000 個の Scriptable Object を用意して すべての Scriptable Object にアドレスを割り振って Default Local Group に追加して Default Local Group の Bundle Mode を 「Pack Separ…
検証環境 Windows 10 Unity 2020.3.13f1 Addressables 1.19.11 検証方法 10,000 個の Text Asset(.txt)を用意して すべての Text Asset にアドレスを割り振って Default Local Group に追加して Default Local Group の Bundle Mode を 「Pack Together(…
検証環境 Addressables 1.16.19 概要 Addressables でローカルカタログを圧縮する設定を有効化して アセットバンドルをビルドするようにしたところ、 「buildlogtep.json」というビルドログのファイルが アプリビルド時にアプリに含まれるようになってしまっ…
検証環境 Addressables 1.16.19 概要 Addressables で管理しているグループが多いと、 ローカルカタログを読み込む処理に時間がかかるようになり、 メインスレッドが止まってしまう 重たい処理は TextDataProvider.Start 関数で File.ReadAllText を使用して…
検証環境 Addressables 1.16.19 概要 Addressable を使用しているプロジェクトで Android ビルドして StreamingAssets からアセットバンドルを読み込んだ時に そのアセットバンドルがキャッシュに保存されない現象に遭遇した Addressable の AssetBundleProv…
検証環境 Addressables 1.16.19 概要 Exception: Attempting to use an invalid operation handle UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle.get_InternalOp () (at Runtime/ResourceManager/AsyncOperations/AsyncOperationHan…
検証環境 Addressables 1.16.19 概要 Addressables で管理しているグループが多いと、 Addressables.UpdateCatalogs の処理に時間がかかるようになり、 メインスレッドが止まってしまう 重たい処理は UpdateCatalogsOperation.Execute 関数なので この部分を…
検証環境 Addressables 1.16.19 概要 Addressables でローカルカタログを圧縮する設定を有効化して アセットバンドルをビルドするようにしたところ、 「buildlogtep.json」というビルドログのファイルが アプリビルド時にアプリに含まれるようになってしまっ…
検証環境 Addressables 1.16.19 概要 Exception: Attempting to use an invalid operation handle UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle.get_InternalOp () (at Runtime/ResourceManager/AsyncOperations/AsyncOperationHan…