using System; using System.Collections; using UnityEngine; namespace OCES { public class ResourcesAssetProvider : IAssetProvider { public T Load(string path) where T : UnityEngine.Object { return Resources.Load(path); } public void LoadAsync(string path, MonoBehaviour coroutineHost, Action onComplete) where T : UnityEngine.Object { coroutineHost.StartCoroutine(LoadAsyncCoroutine(path, onComplete)); } IEnumerator LoadAsyncCoroutine(string path, Action onComplete) where T : UnityEngine.Object { ResourceRequest request = Resources.LoadAsync(path); yield return request; onComplete?.Invoke(request.asset as T); } } }