public AssetBundleLoadSceneResult(UnityWebRequest request, string sceneName, LoadSceneMode loadMode, object userState)
     : base(null, userState)
 {
     _assetBundleLoadResult = new WebRequestResult <AssetBundle>(request);
     _sceneLoadResult       = new AssetBundleSceneRequestResult(sceneName, loadMode);
     _assetBundleLoadResult.AddCompletionCallback(_sceneLoadResult);
     _sceneLoadResult.AddCompletionCallback(this);
 }
示例#2
0
        /// <summary>
        /// Creates an asyncronous operation optimized for loading scenes from an <see cref="AssetBundle"/>.
        /// </summary>
        /// <param name="assetBundle">The source <see cref="AssetBundle"/>.</param>
        /// <param name="sceneName">Name of the scene to load. If <see langword="null"/> the first scene in the asset bundle is loaded.</param>
        /// <param name="loadMode">Scene load mode.</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 load process.</returns>
        public static IAsyncOperation <Scene> GetAssetBundleSceneAsync(AssetBundle assetBundle, string sceneName, LoadSceneMode loadMode, object userState = null)
        {
            if (assetBundle == null)
            {
                throw new ArgumentNullException("assetBundle");
            }

            var result = new Helpers.AssetBundleSceneRequestResult(assetBundle, sceneName, loadMode, userState);

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