# LocalizedAsset<TObject>

> A serializable reference to a localized asset that updates as the selected locale changes.

## Definition

* **Type:** Class
* **Namespace:** [Unity.Localization](/engine/6000.7/script-reference/unity/localization.md)
* **Assembly:** UnityEngine.LocalizationRuntimeModule
* **Inherits from:** [LocalizedEntry\<IAssetEntry>](/engine/6000.7/script-reference/unity/localization/localizedentry1.md)

```csharp
public class LocalizedAsset<TObject> : LocalizedEntry<IAssetEntry> where TObject : Object
```

## Remarks

A [LocalizedAsset\<TObject>](/engine/6000.7/script-reference/unity/localization/localizedasset1.md) extends [LocalizedEntry\<TEntry>](/engine/6000.7/script-reference/unity/localization/localizedentry1.md) to resolve an [IAssetEntry](/engine/6000.7/script-reference/unity/localization/iassetentry.md) and load its asset as `TObject` through the [ResourceDatabase](/engine/6000.7/script-reference/unity/localization/resourcedatabase.md) provider chain. Load the asset with [LocalizedAsset\<TObject>.GetLocalizedAssetAsync()](/engine/6000.7/script-reference/unity/localization/localizedasset1/getlocalizedassetasync.md), or subscribe to [LocalizedAsset\<TObject>.AssetChanged](/engine/6000.7/script-reference/unity/localization/localizedasset1/assetchanged.md) to receive it immediately and again whenever the selected locale changes. For common asset types, use the [LocalizedTexture](/engine/6000.7/script-reference/unity/localization/localizedtexture.md), [LocalizedGameObject](/engine/6000.7/script-reference/unity/localization/localizedgameobject.md), and [LocalizedObject](/engine/6000.7/script-reference/unity/localization/localizedobject.md) subclasses, which are serializable and appear in the Inspector.

Additional Resources: [ResourceDatabase](/engine/6000.7/script-reference/unity/localization/resourcedatabase.md), [TableReference](/engine/6000.7/script-reference/unity/localization/tablereference.md), [LocalizedString](/engine/6000.7/script-reference/unity/localization/localizedstring.md)

Resolve a localized texture and apply it whenever the locale changes.

## Examples

```csharp
using Unity.Localization;
using UnityEngine;

namespace Unity.Localization.Samples
{
    public class LocalizedAssetTextureExample : MonoBehaviour
    {
        void OnEnable()
        {
            var targetRenderer = GetComponent<Renderer>();
            var icon = new LocalizedTexture();
            icon.SetReference("My Assets", "ICON");
            icon.AssetChanged += texture => targetRenderer.material.mainTexture = texture;
        }
    }
}
```

## Methods

| Method                                                                                                                 | Description                                                                                     |
| ---------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| [GetLocalizedAsset](/engine/6000.7/script-reference/unity/localization/localizedasset1/getlocalizedasset.md)           | Resolves the localized asset synchronously when a synchronous provider and entry can supply it. |
| [GetLocalizedAssetAsync](/engine/6000.7/script-reference/unity/localization/localizedasset1/getlocalizedassetasync.md) | Loads the localized asset asynchronously through the resource database.                         |
| [RefreshAsset](/engine/6000.7/script-reference/unity/localization/localizedasset1/refreshasset.md)                     | Re-resolves the asset and pushes the result to subscribers.                                     |

## Events

| Member                                                                                             | Description                                                                             |
| -------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
| [AssetChanged](/engine/6000.7/script-reference/unity/localization/localizedasset1/assetchanged.md) | Occurs when the resolved asset changes, and once immediately when a handler subscribes. |

## Delegates

| Delegate                                                                                                                      | Description                                                         |
| ----------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------- |
| [LocalizedAsset\<TObject>.ChangeHandler](/engine/6000.7/script-reference/unity/localization/localizedasset1/changehandler.md) | Represents a method that receives a resolved localized asset value. |

## Inheritance

**Inherited Members:**

* [LocalizedEntry\<IAssetEntry>.SetReference(TableReference, TableEntryReference)](/engine/6000.7/script-reference/unity/localization/localizedentry1/setreference.md)
* [LocalizedEntry\<IAssetEntry>.GetEntryAsync(CancellationToken)](/engine/6000.7/script-reference/unity/localization/localizedentry1/getentryasync.md)
* [LocalizedEntry\<IAssetEntry>.GetEntry()](/engine/6000.7/script-reference/unity/localization/localizedentry1/getentry.md)
* [LocalizedEntry\<IAssetEntry>.TableEntryReference()](/engine/6000.7/script-reference/unity/localization/localizedentry1/tableentryreference.md)
* [LocalizedEntry\<IAssetEntry>.IsEmpty()](/engine/6000.7/script-reference/unity/localization/localizedentry1/isempty.md)
* [LocalizedReference.ResolveOverrideLocale()](/engine/6000.7/script-reference/unity/localization/localizedreference/resolveoverridelocale.md)
* [LocalizedReference.ForceUpdate()](/engine/6000.7/script-reference/unity/localization/localizedreference/forceupdate.md)
* [LocalizedReference.TableReference()](/engine/6000.7/script-reference/unity/localization/localizedreference/tablereference.md)
* [LocalizedReference.LocaleOverride()](/engine/6000.7/script-reference/unity/localization/localizedreference/localeoverride.md)
* [LocalizedReference.EnableFallback()](/engine/6000.7/script-reference/unity/localization/localizedreference/enablefallback.md)
* [LocalizedReference.HasLocaleOverride()](/engine/6000.7/script-reference/unity/localization/localizedreference/haslocaleoverride.md)
* [Binding.SetGlobalLogLevel(BindingLogLevel)](/engine/6000.7/script-reference/unityengine/uielements/binding/setgloballoglevel.md)
* [Binding.GetGlobalLogLevel()](/engine/6000.7/script-reference/unityengine/uielements/binding/getgloballoglevel.md)
* [Binding.SetPanelLogLevel(IPanel, BindingLogLevel)](/engine/6000.7/script-reference/unityengine/uielements/binding/setpanelloglevel.md)
* [Binding.GetPanelLogLevel(IPanel)](/engine/6000.7/script-reference/unityengine/uielements/binding/getpanelloglevel.md)
* [Binding.ResetPanelLogLevel(IPanel)](/engine/6000.7/script-reference/unityengine/uielements/binding/resetpanelloglevel.md)
* [Binding.MarkDirty()](/engine/6000.7/script-reference/unityengine/uielements/binding/markdirty.md)
* [Binding.isDirty](/engine/6000.7/script-reference/unityengine/uielements/binding/isdirty.md)
* [Binding.updateTrigger](/engine/6000.7/script-reference/unityengine/uielements/binding/updatetrigger.md)
