// --------- AssetBundle extension methods --------- // public static IPromise LoadAllAssetsPromise(this AssetBundle bundle) { var p = Promise.Create(); var request = bundle.LoadAllAssetsAsync(); CoroutineExtensions.WaitUntil(request) .ThenDo(() => p.Resolve(request.allAssets)); return(p); }
public static IPromise LoadAssetPromise(this AssetBundle bundle, string assetName) { var p = Promise.Create(); var request = bundle.LoadAssetAsync(assetName); CoroutineExtensions.WaitUntil(request) .ThenDo(() => p.Resolve(request.asset)); return(p); }
public static IPromise WaitForCoroutine(IEnumerator coroutine) { if (!_instance) { Init(); } var p = Promise.Create(); _instance.StartCoroutine(_instance.WaitForCoroutine(coroutine, p)); return(p); }
// ReSharper disable once UnusedMember.Local private static IPromise LoadFromFileAsync(string bundlePath) { if (!LoadedBundles.ContainsKey(bundlePath)) { LoadedBundles.Add(bundlePath, Promise.Create()); var path = Path.Combine(Application.streamingAssetsPath, bundlePath).Replace("\\", "/"); var request = AssetBundle.LoadFromFileAsync(path); CoroutineExtensions.WaitUntil(request) .ThenDo(() => { Debug.Log($"Loaded AssetBundle at: {path}"); LoadedBundles[bundlePath].Resolve(request.assetBundle); }); } return(LoadedBundles[bundlePath]); }
public static IPromise LoadAsync(string path) { #if UNITY_EDITOR if (!Application.isPlaying) { var promise = Promise.Create(); promise.Resolve(Resources.Load(path)); return(promise); } #endif var p = Promise.Create(); var resourceRequest = Resources.LoadAsync(path); CoroutineExtensions.WaitUntil(resourceRequest) .ThenLog("Loaded resource at: " + path) .ThenDo(() => p.Resolve(resourceRequest.asset)); return(p); }