# ResourceFolderProvider

> An asset provider that loads assets from Resources folders, treating the address as a Resources path.

## Definition

* **Type:** Class
* **Namespace:** [Unity.Localization.Providers](/engine/6000.7/script-reference/unity/localization/providers.md)
* **Assembly:** UnityEngine.LocalizationRuntimeModule
* **Implements:** [IAsyncAssetProvider](/engine/6000.7/script-reference/unity/localization/providers/iasyncassetprovider.md), [IAssetProvider](/engine/6000.7/script-reference/unity/localization/providers/iassetprovider.md), [ISynchronousAssetProvider](/engine/6000.7/script-reference/unity/localization/providers/isynchronousassetprovider.md)

```csharp
public sealed class ResourceFolderProvider : IAsyncAssetProvider, IAssetProvider, ISynchronousAssetProvider
```

## Remarks

An address that does not resolve to an asset in a `Resources` folder is a miss and returns `null`, so addresses meant for other providers do not resolve here. Because this provider always loads by `Resources` path, a table referenced by collection guid cannot address it directly. Register a guid-address to path alias with [ResourceFolderProvider.AddAlias](/engine/6000.7/script-reference/unity/localization/providers/resourcefolderprovider/addalias.md) so a guid reference still resolves.

Additional Resources: [IAssetProvider](/engine/6000.7/script-reference/unity/localization/providers/iassetprovider.md), [AssetProvider](/engine/6000.7/script-reference/unity/localization/providers/assetprovider.md), [ReferencedAssetProvider](/engine/6000.7/script-reference/unity/localization/providers/referencedassetprovider.md), [AssetKey](/engine/6000.7/script-reference/unity/localization/providers/assetkey.md)

Load an asset from a Resources folder by path.

## Examples

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

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

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

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

## Methods

| Method                                                                                                                  | Description                                                                         |
| ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
| [AddAlias](/engine/6000.7/script-reference/unity/localization/providers/resourcefolderprovider/addalias.md)             | Maps an address to a Resources path, replacing any existing alias for that address. |
| [LoadAssetAsync](/engine/6000.7/script-reference/unity/localization/providers/resourcefolderprovider/loadassetasync.md) | Loads the asset for the key from a Resources folder as the requested type.          |
| [Release](/engine/6000.7/script-reference/unity/localization/providers/resourcefolderprovider/release.md)               | Unloads an asset previously loaded from a Resources folder.                         |
| [Remove](/engine/6000.7/script-reference/unity/localization/providers/resourcefolderprovider/remove.md)                 | Removes any alias registered under the given address.                               |
