# IAsyncAssetProvider

> An optional capability for an asset provider that loads assets asynchronously.

## Definition

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

```csharp
public interface IAsyncAssetProvider : IAssetProvider
```

## Remarks

Implement this alongside [IAssetProvider](/engine/6000.7/script-reference/unity/localization/providers/iassetprovider.md) when a provider loads through an asynchronous operation, such as a Resources request or Addressables. The localization system calls this on the asynchronous resolve paths. A provider that can also resolve immediately implements [ISynchronousAssetProvider](/engine/6000.7/script-reference/unity/localization/providers/isynchronousassetprovider.md) as well; one that can only resolve immediately implements just the synchronous capability, and the asynchronous paths wrap its result in a completed [Awaitable](/engine/6000.7/script-reference/unityengine/awaitable.md).

Additional Resources: [IAssetProvider](/engine/6000.7/script-reference/unity/localization/providers/iassetprovider.md), [ISynchronousAssetProvider](/engine/6000.7/script-reference/unity/localization/providers/isynchronousassetprovider.md)

A provider that resolves its assets through an asynchronous operation.

## Examples

```csharp
using System.Threading;
using Unity.Localization.Providers;
using UnityEngine;
using Object = UnityEngine.Object;

namespace Unity.Localization.Samples
{
    public class IAsyncAssetProviderExample : IAsyncAssetProvider
    {
        public async Awaitable<T> LoadAssetAsync<T>(AssetKey key, CancellationToken cancellationToken) where T : Object
        {
            await Awaitable.NextFrameAsync(cancellationToken);
            return null;
        }

        public void Release(Object asset) { }
    }
}
```

## Methods

| Method                                                                                                               | Description                                                  |
| -------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ |
| [LoadAssetAsync](/engine/6000.7/script-reference/unity/localization/providers/iasyncassetprovider/loadassetasync.md) | Loads the asset identified by the key as the requested type. |

## Inheritance

**Inherited Members:**

* [IAssetProvider.Release(Object)](/engine/6000.7/script-reference/unity/localization/providers/iassetprovider/release.md)
* [IAssetProvider.Id()](/engine/6000.7/script-reference/unity/localization/providers/iassetprovider/id.md)
