Addressablesのファイルの中身を理解 前回の記事で、Addressablesを使えばサーバーからアセットをロードすることができ、アプリ本体の容量の節約やメモリの節約に繋がる方法を解説しました。 今回は、このAddressablesをもう少しだけ深く理解します。 ビルド時に生成されるファイルの中身 Addressablesでビルドを行うと以下の3種類のファイルが作成されます。 ・.build ・catalog.hash ・catalog.json この.build拡張子のファイルは、実際にアセットをビルドしたデータの本体です。 catalog.jsonにはアセットの依存関係や、アセットのパスの情報が含まれています。 たとえば、一部抜粋ですが、以下のようにパスが格納されています。 "m_ProviderIds": ["UnityEngine.ResourceManagement.Re
UniTaskでAddressableのロードキャンセル時に起こりがちなメモリリークをautoReleaseWhenCanceledで自動解放して防ぐ方法についてまとめました。 キャンセル時にはアンロードが必要 挙動を確認する 実行結果 関連 キャンセル時にはアンロードが必要 いま、Addressable アセットシステムでアセットをロードする際に、途中で処理をキャンセルすることを考えます。 しかし Addressables のロードメソッドの引数にはそもそも CancellationToken が用意されていないので、自身で以下のようなメソッドを用意する必要があります。 using System.Threading; using Cysharp.Threading.Tasks; using UnityEngine; using UnityEngine.AddressableAssets;
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Addressableについて調べていたらもうこんな時間です。 アセットバンドルのビルドに数時間かかる事例を目にしたので、何かいい方法がないか調べていると、Addressableのカタログは分割が可能であるという情報をいくつか見つけました。 Addressables.LoadContentCatalogAsyncにカタログが置いてあるURLを渡すことで、カタログをロードすることができるそうです。 カタログのロード後は通常通りAddressables.LoadAssetAsyncなどでアセットのロードが可能になります。 「unity ad
こんにちは、SGEコア技術本部(コアテク)基盤チーム所属の袴田です。 基盤チームでは各子会社で利用される基盤開発をメイン業務としています。 開発した基盤のいくつかはOSSとして公開もしています。 github.com 基盤はフルスクラッチで開発することもあれば、Unityパッケージなど既存のものを改修することもあります。 このシリーズではAddressablesに対して施した改修について紹介していきます。 Addressablesとは 本記事の改修に関わる機能 改修内容 動作モードを追加するには アセット解決を両対応にする Addressablesとは AddressablesはUnityが提供しているアセット管理システムです。 Addressables登場以前のUnityではアセットの配置によって Resources、StreamingAssets、AssetBundle を使い分ける必
発生した問題 サーバーに置いてある Addressables のコンテンツカタログをアップデートしてから Addressables.CheckForCatalogUpdates() を実行しても、常に空のリストしか返ってこないという問題に遭遇しました。 解決方法 先に Addressables.InitializeAsync() を明示的に実行して、初期化が完了するのを待ってから Addressables.CheckForCatalogUpdates() を呼ぶ。 説明 Addressables の初期化は、Addressables API を初めて叩いたときに自動的に行われるので、普通はわざわざ Addressables.InitializeAsync() を実行する必要はありません。 なので、いきなり Addressables.CheckForCatalogUpdates() を呼んで
UnityのAddressableアセットシステムでAssetDatabaseにアセットがあったらそれを読み込み、なければリモートから取得する仕組みを作る方法についてまとめました。 やりたいこと 方針と実装 注意点 その他検討した方法メモ AssetDatabase用のResourceLocatorを追加する 新しいResourceLocatorを実装する 関連 Unity2020.3.40 Addressables 1.18.19 やりたいこと まず、以下のようなプロジェクトを考えます。 Unity プロジェクト内(AssetDatabase)には全てのアセットが必ずしも存在せず、部分的に存在する可能性がある PlasticSCM や Perforce などのバージョン管理ツールで部分チェックアウトを行うようなケース 全てのアセットをプロジェクトに取り込むと動作が重くなるため Addre
問題 settings.jsonの参照先はどこ?変更できる? settings.jsonが参照するcatalog.json(等)の参照先はどう変更できる? シーンを読み込んだ後に発生する問題の解消(プレイヤーが移動しない、フォントが読み込まれない、など) リソースの読み込み先をRemoteにするために AddressableAssetSettingsのProfile Romoteに設定(Remoteの中で、S3のURLを設定している) 以下の画像上部の選択肢(Profile in Use)は、Addressables Profilesの左列に対応している模様 画像下部のPath Previewは、Addressables Profilesの設定と連動していることを確認 AddressableGroupの設定 画像下部のPath Previewは、Addressables Profilesの
素材を Addressables に登録してビルドする 今回はサンプルとして簡単な構成にする。 いらすとやの素材を使用して、Food, Drink, Music という3つのグループで以下のように画像ファイルをまとめる。 次にこれらのアセットをAddressableAssetGroupとして登録する。 Window/Asset Management/Addressables/Groups を選択するとウィンドウが出てくる。 ここの New を選択し、 Packed Assets を選択 Packed Assets (Default) というグループが作られる このグループは ScriptableObject として設定されているらしく、 グループを追加すると同時に Assets/AddressableAssetsData 以下に AssetGroups というフォルダが作られ、そこに作成し
{ "m_buildTarget": "StandaloneOSX", "m_SettingsHash": "", "m_CatalogLocations": [ { "m_Keys": [ "AddressablesMainContentCatalog" ], "m_InternalId": "{UnityEngine.AddressableAssets.Addressables.RuntimePath}/catalog.json", "m_Provider": "UnityEngine.AddressableAssets.ResourceProviders.ContentCatalogProvider", "m_Dependencies": [], "m_ResourceType": { "m_AssemblyName": "Unity.Addressables, Version=0.
前提 前提としてプロジェクトには Addressables を既に組み込んでいるものとする。 バージョンは 1.19.19 を使用する。 MacOSで動かしているのでプラットフォーム名は OSX などになっているが、実行する環境によってここの名前は変化する点に注意。 各ファイルの役割について Addressables を動作させるにあたって絶対に必要なものとして settings.json がある。 このファイルはAddressables を初期化する際(Addressables.InitializeAsync を呼び出した時)に使用される。 Addressables 側で必要とするため、このファイルに関してはアプリビルド時に必ず組み込まれる。 各種プロパティについて説明 LibraryPath "Library/com.unity.addressables/" を指す Streaming
はじめに Addressables Asset System が登場してかなり立ちますが、Webにはいまだに応用編の情報が少ない状況です。基礎編はわりと充実しており、なんとなく使えるレベルにはすぐにたどり着けます。しかしながらいざ製品版や運営タイトルに投入しようとすると、途端にどのように設計すればいいかに悩むわけです。 アセットの分割および配信設計はゲーム運営やDLC配布に欠かせない仕組みであり、一度設計を失敗すると二度と取り戻せない重篤な事態となる危険があります。一度リリースしたソフト・アセットを無かったことにはできないからです。 本稿を執筆したモチベーションは、世の中に具体的な情報が少なく手探りで進めて苦しい経験をしたからです。実運用を考慮したプロダクトレディな事例共有が少ないため、どうしても自PJに参考となる事例を見つけられませんでした。大規模モバイル案件はコンシューマー案件には参考
はじめに AddressableAssetSystemは主に、スマホゲームなどのリソースデータをアプリ本体と切り離して配信するための仕組みです。 しかしこうしたゲーム用途だけでなく、ビルド済みのUnityアプリに後からデータを追加するツールとしても使えるのではないか? と思い立ち、実験をしてみました。 既に先行事例が複数公開されていますが、AssetBundle等の運用経験がない筆者でも理解できた難易度で解説しつつ、Unity6で検証した令和最新版としてお届けします。 検証環境 Windows11 Unity6000.0.28f1 Addressables 2.2.2 作業手順 ビルド用のプロジェクトとロード用のプロジェクトを2つ用意する。 プロジェクト間でUnityEditorのバージョンは揃えておく。 Window/PackageManagerからAddressablesを追加する。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く