Пример #1
0
        /// <summary>
        /// Creates an <see cref="IAsyncOperation{TResult}"/> wrapper for the Unity <see cref="AssetBundleRequest"/>.
        /// </summary>
        /// <param name="op">The source operation.</param>
        public static IAsyncOperation <T> ToAsync <T>(this AssetBundleRequest op) where T : UnityEngine.Object
        {
            var result = new Helpers.AssetBundleRequestResult <T>(op);

            result.Start();
            return(result);
        }
 public AssetBundleLoadAssetResult(UnityWebRequest request, string assetName, object userState)
     : base(null, userState)
 {
     _assetBundleLoadResult = new WebRequestResult <AssetBundle>(request);
     _assetLoadResult       = new AssetBundleRequestResult <T>(assetName);
     _assetBundleLoadResult.AddCompletionCallback(_assetLoadResult);
     _assetLoadResult.AddCompletionCallback(this);
 }
Пример #3
0
        /// <summary>
        /// Creates an asyncronous operation optimized for loading assets from an <see cref="AssetBundle"/>.
        /// </summary>
        /// <param name="assetBundle">The source <see cref="AssetBundle"/>.</param>
        /// <param name="assetName">Name of the prefab to load. If <see langword="null"/> the first asset of the matching type is loaded.</param>
        /// <param name="userState">User-defined data.</param>
        /// <exception cref="ArgumentNullException">Thrown if <paramref name="assetBundle"/> is <see langword="null"/>.</exception>
        /// <returns>An operation that can be used to track the download process.</returns>
        public static IAsyncOperation <T> GetAssetBundleAssetAsync <T>(AssetBundle assetBundle, string assetName, object userState = null) where T : UnityEngine.Object
        {
            if (assetBundle == null)
            {
                throw new ArgumentNullException("assetBundle");
            }

            var result = new Helpers.AssetBundleRequestResult <T>(assetBundle, assetName, userState);

            result.Start();
            return(result);
        }