# AssetChanged

> Occurs when the resolved asset changes, and once immediately when a handler subscribes.

## Definition

* **Type:** Event
* **Namespace:** [Unity.Localization](/engine/6000.7/script-reference/unity/localization.md)
* **Assembly:** UnityEngine.LocalizationRuntimeModule

```csharp
public event LocalizedAsset<TObject>.ChangeHandler AssetChanged
```

### Remarks

Adding a handler invokes it right away with the current asset, then again whenever the selected locale changes or [LocalizedAsset\<TObject>.RefreshAsset()](/engine/6000.7/script-reference/unity/localization/localizedasset1/refreshasset.md) runs. Because loading is asynchronous, the first call arrives after the asset has loaded. Removing the last handler stops the reference from listening for locale changes.

Additional Resources: [LocalizedAsset\<TObject>.RefreshAsset()](/engine/6000.7/script-reference/unity/localization/localizedasset1/refreshasset.md), [LocalizedAsset\<TObject>.GetLocalizedAssetAsync()](/engine/6000.7/script-reference/unity/localization/localizedasset1/getlocalizedassetasync.md)

Swap a texture whenever the localized asset changes.

### Examples

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

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