うにてぃブログ

主にUnityとC#に関する記事を書いていきます

Addressable

【Unity】Addressable Asset Systemを活用したアセットの動的なカタログ登録方法

UnityのAddressable Asset Systemは、アプリケーションのアセットを効率的に管理し、ダイナミックなロードやアンロードを可能にする強力なツールです。このシステムを使用することで、ゲームやアプリの開発者は、リソースの管理を容易にし、ユーザー体験を向…

【Unity】TextMeshPro を利用した Prefab の Addressables 対応時の問題

Unity で TextMeshPro を使用する際に、フォントアセットを Addressable に対応させない場合、各 UI のバンドルにフォントデータが含まれ、バンドルのサイズが大きくなってしまいます。 一方で、フォントアセットを Addressable に対応させた場合は、フォン…

【Unity】TextMeshProのフォントを Addressable で利用する

Addressable ロードの問題とその解決方法 TextMeshProのフォントとMaterial PresetをデフォルトおよびカスタマイズしたUIをAddressableを利用してロードする際に、Addressableの設定によって発生する問題についてご紹介します。 まず、以下の画像では、カス…

【エラー】 UnityEngine.AddressableAssets.InvalidKeyException: Exception of type 'UnityEngine.AddressableAssets.InvalidKeyException' was thrown. No Location found for Key=GUID

UnityEngine.AddressableAssets.AssetReference を利用している際に UnityEditor 上では動作したがビルドして確認してみると以下のエラーでロードできなかった UnityEngine.AddressableAssets.InvalidKeyException: Exception of type 'UnityEngine.Addressa…

【Unity】Addressables のカタログに対象のアドレスが含まれるかどうかを調べる

public static async UniTask<bool> Contains(string address) { var opHandle = Addressables.LoadResourceLocationsAsync(address); await opHandle; if (opHandle.Status == AsyncOperationStatus.Succeeded && opHandle.Result != null && opHandle.Result.Cou</bool>…

【Unity】Addressable でディレクトリにアドレスを設定する意味

Addressable ではディレクトリにアドレスを設定することができる しかし、実際にそのアドレスをロードしようとすると、次のエラーが出てしまいます UnityEngine.AddressableAssets.InvalidKeyException: Exception of type 'UnityEngine.AddressableAssets.I…

【Unity】Addressable で「Use Existing Build」の際に Local Group はAddressable からロードするようにする

Addressable では 「Use Existing Build」の場合ローカルとリモートのグループともにカタログに記載されていなればロードできない しかし、ローカルグループの量が多かったりするとテストのたびにローカルのビルドをするのは時間がかかってしまいます そのた…

【Unity】Addressables Group BuildPath・LoadPath をスクリプトから変更する

var settings = AddressableAssetSettingsDefaultObject.Settings; var schema = settings.DefaultGroup.GetSchema<BundledAssetGroupSchema>(); // Remote のパスを設定 schema.BuildPath.SetVariableByName(settings, AddressableAssetSettings.kRemoteBuildPath); schema.LoadPath.</bundledassetgroupschema>…

【Unity】Insecure connection not allowed【Error】

Unity 2022以降 Addressable でリモートのバンドルをロードする際にデフォルトの設定だと リモートからカタログやバンドルをロードする際に以下のエラーが発生する Non-secure network connections disabled in Player Settings Insecure connection not all…

【Unity】Addressable の Path を動的に変更する

Addressable の Path には Static なクラスの参照をもたせることができる 例えば以下のクラスのパスで置き換えたい場合は public static class AddressableUtil { public static string LoadPath; } このように記述すればカタログのロード時に置き換えること…

【Unity】Addressable をローカルサーバを立ててそこからロードする

Hosting Window から Hosting するように変更 ブラウザから記述してあるURLにアクセスし、 Console にログが表示されれば起動しています 今回であれば http://192.168.1.8:59595/ が URL になります これを先にしないと以下のように[HostingServicePort]が置…

【Unity】Addressable で指定ディレクトリ以下にあるアセットに自動でAddressを設定する

Addressable Asset Sysytem では Addressable Group の EditorWidow からアドレスを設定する作りとなっており、自動化したい場合は自前でなにかしらの処理を書く必要がある 大体同じ処理を書くと思うので自動的にアドレスを設定する PostProcessor を作成し…