# LoadAssetAsync<T>(AssetKey, CancellationToken)

> Loads the asset identified by the key as the requested type.

## Definition

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

```csharp
Awaitable<T> LoadAssetAsync<T>(AssetKey key, CancellationToken cancellationToken) where T : Object
```

### Parameters

**** (\[AssetKey]\(/engine/6000.7/script-reference/unity/localization/providers/assetkey)): The asset to load.**** (\[CancellationToken]\(https\://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken)): A token that cancels the load.

### Returns

| Type                                                                      | Description                                             |
| ------------------------------------------------------------------------- | ------------------------------------------------------- |
| [Awaitable\<T>](/engine/6000.7/script-reference/unityengine/awaitable.md) | The loaded asset, or `null` when it cannot be resolved. |

### Remarks

The asset type is `T`, or [AssetKey.Type](/engine/6000.7/script-reference/unity/localization/providers/assetkey/type.md) when `T` is the base [Object](/engine/6000.7/script-reference/unityengine/object.md), so a type-erased caller can pass `<Object>` and carry the type on the key. Completes with `null` when the key cannot be resolved, or when the resolved asset is not a `T`. A cancelled load throws OperationCanceledException.

Load a texture through a provider.

### Examples

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

namespace Unity.Localization.Samples
{
    public class IAsyncAssetProviderLoadAssetGenericExample
    {
        public async Awaitable Run()
        {
            IAsyncAssetProvider provider = new ResourceFolderProvider();

            var texture = await provider.LoadAssetAsync<Texture2D>(
                new AssetKey("UI/Logo", typeof(Texture2D)), CancellationToken.None);

            if (texture != null)
                Debug.Log(texture.name);
        }
    }
}
```
