Addressables のインテグレーション
Localization パッケージは、Addressables アセットシステム を使用してロケール、String Table、Asset Table などのアセットを管理します。
アセットは、アセットのタイプやそれに依存するロケールなどの基準に基づいて、異なる Addressable グループ内に配置できます。
Addressable Group Rules
グループの規則 (ルール) を設定するには、Addressable Group Rules アセット (Assets > Create > Localization > Addressable Group Rules) を作成します。 以下はいくつかの異なるルールセットの例です。
- 全てのアセットに単一のグループを使用する
- ロケール毎に 1 つ、共有アセット用に 1 つのグループを作成する
- アセットのタイプ (String Table、テクスチャ、オーディオ) 毎にグループを作成する
- Region (地域) グループを作成して、類似した地域 (ヨーロッパ、アジア、ラテンアメリカ) のアセットを照合する

Group Resolver
デフォルトでは、各ルールセットがそれぞれ 1 つの GroupResolver を使用します。より複雑な規則を作成するには、カスタムクラスを作成してください。
Group Resolver は、以下の規則を使用してグループを選択します。
| プロパティ | 説明 |
|---|---|
| Shared Group Name | このグループには、全てのロケールが使用するアセット (Shared Table Data) で、Common あるいは Region Locale グループを共有しないものが含まれます。例えば、複数のロケールが使用するアセットはこのグループに属します。アセットが追加されると、一致する名前を持つグループが使用されるか、新しいものが作成されます。 |
| Shared Group | グループが Addressable Asset Group アセットで直接設定されると、Shared Group Name がこの値に置き換わります。 |
| Locale Group Name | Locale Group Name は、ロケールあるいはアセットに固有の名前を生成するために使用できる Smart String です。 Smart Format 操作に次の 2 つの引数が渡されます:
例えば、 “{1:{GetType.Name}} Assets - {LocaleName} ({Identifier.Code})” の規則でウェールズ語 (Welsh) に追加されたオーディオクリップ (Audio Clip) は、“AudioClip Assets - Welsh (cy)” を使用します。 |
| Locale Groups | プロジェクトのロケール毎に特定のグループを追加できます。存在するロケールには、Locale Group Name の代わりにこの値が使用されます。 また、複数のロケールに同じグループを使用することも可能です (地域グループなど)。1 つのアセットを複数のロケールが使用し、全てのロケールが同じグループを使用する場合、Shared Group の代わりにこの値が使用されます。 |
| Read Only | 新しく作成されたグループを読み取り専用としてマークしたい場合は、このオプションを有効にしてください。読み取り専用グループは Addressables Group ウィンドウからは修正できません。 |
ロケール
デフォルトでは、ロケールは Localization-Locales という別の Addressables Group 内に格納されます。
ロケールは、Locale ラベルを持つ全ての Locale アセットを検索して見付けることができます。 ロケールを異なる Addressable Group 内に移動させたり、その Addressable Name を変更することは安全ですが、Locale ラベルは削除しないでください (削除するとプレイヤー内でそのロケールを見付けることができなくなります)。

String Table Collection と Asset Table Collection
Collection (コレクション) には 2 つの部分があります。Table (テーブル) と Shared Table Data です。各ロケールが 1 つのテーブルを持ち、同じコレクション内の全てのテーブルは同じ Shared Table Data を使用します。
デフォルトでは Shared Table Data アセットは Localization-Assets-Shared というグループ内に格納されます。Table は、String Table の場合は Localization-String-Tables-{LocaleName} という名前構造を持つそのロケール用のグループ内に格納され、Asset Tables の場合は Localization-Asset-Tables-{LocaleName} という名前構造を持つそのロケール用のグループ内に格納されます。
Shared Table Data アセットには特別な Addressable (アドレス指定可能) な特性はなく、アセットの GUID によってランタイムで解決されます。Shared Table Data の全ての Addressable プロパティは安全に修正可能です。
テーブルには、Locale-{Code} という形の、それが表すロケールのラベルが含まれています。String Table が Preload としてマークされている場合、それには Preload ラベルも含まれることになります。ランタイムで、Preload ラベルと関連の Locale ラベルの両方を持つ String Table アセットをクエリすることによって、プリロードが実行されます。ラベルを更に追加することは安全ですが、Locale ラベルや Preload ラベルは削除しないでください。
Localization システムはテーブルを読み込む際に Table Address を使用するので、Table Address には変更を加えないでください。Table Address の形式は “{TableName}_{Code}” です。

Asset Table アセット
デフォルトでは、Asset Table の一部であるアセットは、それに依存するロケール用の Localization-Assets-{LocaleName} という名前のグループ内に格納されます。2 つ以上のロケールによって使用されるアセットは Localization-Assets-Shared グループ内に配置されます。
アセットはランタイムでその GUID 経由で解決されるので、Address は安全に変更可能です。アセットには、Locale_{Code} という形式の、それに依存する各ロケールのラベルが含まれます。このラベルはエディター内でアセットの使用をトラッキングするために使用され、プレイヤーでは使用されませんが、削除するとアセットが誤ったグループに配置されてしまう可能性があります。

レガシーサポート
0.11.0 より前のバージョンでは、ローカライゼーションアセットは、異なるグループ規則を使用して保存されていました。0.11.0 より前のバージョンを使用してビルドされたプロジェクトをアップグレードする場合などは、この構造を維持するためにレガシールールセットを作成することが可能です。レガシールールセットを作成するには、メニューを Assets > Create > Localization > Addressable Group Rules(Legacy) の順に選択してください。
Addressable Analyzer
Addressables の問題を修正したり、Addressable Group Rules が修正された時にプロジェクトをアップグレードするには、Addressable Analyzer (アナライザー) を使用します。Addressable Analyzer は Analyzer ウィンドウ (Window > Asset Management > Addressables > Analyze) から使用可能です。
アナライザーを実行すると、発見された問題とその重大度のレポートが生成されます。その後 Fix Selected Rules ボタンを押すことで問題が自動的に修正されます。
Check Asset Tables アナライザーを実行した例
Localization Analyzer には以下の 3 つがあります。
- Check Localization Locales: この規則は、プロジェクト内の全てのロケールが Addressable としてマークされ、Locale ラベルを含み、Addressable Group Rules によって定義されたグループ内にあるかどうかを確認します。
- Check Localization String Tables: この規則は、String Table とその Shared Table Data が "Addressable Group Rules によって定義されるグループに含まれ、想定されるラベルとアドレスを持っているかどうか" を確認します。
- Check Localization Asset Tables: この規則は、Asset Table とその Shared Table Data が "Addressable Group Rules によって定義されたグループに含まれ、想定されるラベルとアドレスを持っているかどうか" を確認します。またこの規則は、テーブルの参照する全てのアセットが想定のグループ内にあり正しいラベルを持っているかどうかも確認します。