Class AddressableGroupRules
Provides support for configuring rule sets to determine the AddressableAssetGroups that localized assets should be added to.
Inherited Members
Namespace: UnityEditor.Localization.Addressables
Syntax
public class AddressableGroupRules : ScriptableObject
Examples
This example places all English assets into a local group and all other languages into a remote group which could then be downloaded after the game is released.
using System.Collections.Generic;
using UnityEditor;
using UnityEditor.AddressableAssets.Settings;
using UnityEditor.Localization.Addressables;
using UnityEngine;
using UnityEngine.Localization;
/// <summary>
/// Places all English assets into a local group and all other languages into a remote group which could be downloaded after the game is released.
/// </summary>
[System.Serializable]
public class GroupResolverExample : GroupResolver
{
public string localAssetsGroup = "Localization-Local";
public string remoteAssetsGroup = "Localization-Remote";
[MenuItem("Localization Samples/Create Group Resolver")]
static void CreateAsset()
{
var path = EditorUtility.SaveFilePanelInProject("Create Addressable Rules", "Localization Addressable Group Rules.asset", "asset", "");
if (string.IsNullOrEmpty(path))
return;
var instance = ScriptableObject.CreateInstance<AddressableGroupRules>();
var resolver = new GroupResolverExample();
// Apply our custom group resolver to everything
instance.LocaleResolver = resolver;
instance.AssetTablesResolver = resolver;
instance.AssetResolver = resolver;
instance.StringTablesResolver = resolver;
// Make this our new AddressableGroupRules
AssetDatabase.CreateAsset(instance, path);
AddressableGroupRules.Instance = instance;
}
public override string GetExpectedGroupName(IList<LocaleIdentifier> locales, Object asset, AddressableAssetSettings aaSettings)
{
// Use default behaviour for shared assets
if (locales == null || locales.Count == 0)
return base.GetExpectedGroupName(locales, asset, aaSettings);
var locale = locales[0];
if (locale.Code == "en")
return localAssetsGroup;
return remoteAssetsGroup;
}
}
Properties
AssetResolver
Controls which groups assets that are part of 1 or more AssetTable will be added to.
Declaration
public GroupResolver AssetResolver { get; set; }
Property Value
Type | Description |
---|---|
GroupResolver |
AssetTablesResolver
Controls which groups AssetTable and their SharedTableData are added to.
Declaration
public GroupResolver AssetTablesResolver { get; set; }
Property Value
Type | Description |
---|---|
GroupResolver |
Instance
The active AddressableGroupRules that is being used by the project.
Declaration
public static AddressableGroupRules Instance { get; set; }
Property Value
Type | Description |
---|---|
AddressableGroupRules |
LocaleResolver
Controls which groups Locales are added to.
Declaration
public GroupResolver LocaleResolver { get; set; }
Property Value
Type | Description |
---|---|
GroupResolver |
StringTablesResolver
Controls which groups StringTable and their SharedTableData are added to.
Declaration
public GroupResolver StringTablesResolver { get; set; }
Property Value
Type | Description |
---|---|
GroupResolver |