コード例 #1
0
            public void Start(ProvideHandle provideHandle)
            {
                provideHandle.SetProgressCallback(ProgressCallback);
                subObjectName      = null;
                m_ProvideHandle    = provideHandle;
                m_RequestOperation = null;
                List <object> deps = new List <object>(); // TODO: garbage. need to pass actual count and reuse the list

                m_ProvideHandle.GetDependencies(deps);
                AssetBundle bundle = LoadBundleFromDependecies(deps);

                if (bundle == null)
                {
                    m_ProvideHandle.Complete <AssetBundle>(null, false, new Exception("Unable to load dependent bundle from location " + m_ProvideHandle.Location));
                }
                else
                {
                    var assetPath = m_ProvideHandle.ResourceManager.TransformInternalId(m_ProvideHandle.Location);
                    if (m_ProvideHandle.Type.IsArray)
                    {
                        m_RequestOperation = bundle.LoadAssetWithSubAssetsAsync(assetPath, m_ProvideHandle.Type.GetElementType());
                    }
                    else if (m_ProvideHandle.Type.IsGenericType && typeof(IList <>) == m_ProvideHandle.Type.GetGenericTypeDefinition())
                    {
                        m_RequestOperation = bundle.LoadAssetWithSubAssetsAsync(assetPath, m_ProvideHandle.Type.GetGenericArguments()[0]);
                    }
                    else
                    {
                        if (ResourceManagerConfig.ExtractKeyAndSubKey(assetPath, out string mainPath, out string subKey))
                        {
                            subObjectName      = subKey;
                            m_RequestOperation = bundle.LoadAssetWithSubAssetsAsync(mainPath, m_ProvideHandle.Type);
                        }
コード例 #2
0
            public InternalProviderOperation <TObject> Start(IResourceLocation location, IAsyncOperation <IList <object> > loadDependencyOperation)
            {
                m_Result                           = null;
                m_RequestOperation                 = null;
                m_DependencyOperation              = loadDependencyOperation;
                loadDependencyOperation.Completed += op =>
                {
                    if (op.Status == AsyncOperationStatus.Succeeded)
                    {
                        AssetBundle bundle = op.Result[0] as AssetBundle;
                        if (bundle == null)
                        {
                            var handler = op.Result[0] as DownloadHandlerAssetBundle;
                            if (handler != null)
                            {
                                bundle = handler.assetBundle;
                            }
                        }

                        if (bundle == null)
                        {
                            //TODO - handle error case properly
                            SetResult(default(TObject));
                            OnComplete();
                        }
                        else
                        {
                            var t = typeof(TObject);
                            if (t.IsArray)
                            {
                                m_RequestOperation = bundle.LoadAssetWithSubAssetsAsync(location.InternalId, t.GetElementType());
                            }
                            else if (t.IsGenericType && typeof(IList <>) == t.GetGenericTypeDefinition())
                            {
                                m_RequestOperation = bundle.LoadAssetWithSubAssetsAsync(location.InternalId, t.GetGenericArguments()[0]);
                            }
                            else
                            {
                                m_RequestOperation = bundle.LoadAssetAsync <TObject>(location.InternalId);
                            }

                            if (m_RequestOperation.isDone)
                            {
                                DelayedActionManager.AddAction((Action <AsyncOperation>)OnComplete, 0, m_RequestOperation);
                            }
                            else
                            {
                                m_RequestOperation.completed += OnComplete;
                            }
                        }
                    }
                    else
                    {
                        m_Error = op.OperationException;
                        SetResult(default(TObject));
                        OnComplete();
                    }
                };
                return(base.Start(location));
            }
コード例 #3
0
            public void Start(ProvideHandle provideHandle)
            {
                provideHandle.SetProgressCallback(ProgressCallback);
                subObjectName      = null;
                m_ProvideHandle    = provideHandle;
                m_RequestOperation = null;
                List <object> deps = new List <object>(); // TODO: garbage. need to pass actual count and reuse the list

                m_ProvideHandle.GetDependencies(deps);
                AssetBundle bundle = LoadBundleFromDependecies(deps);

                if (bundle == null)
                {
                    m_ProvideHandle.Complete <AssetBundle>(null, false, new Exception("Unable to load dependent bundle from location " + m_ProvideHandle.Location));
                }
                else
                {
                    var assetPath = m_ProvideHandle.Location.InternalId;
                    if (m_ProvideHandle.Type.IsArray)
                    {
                        m_RequestOperation = bundle.LoadAssetWithSubAssetsAsync(assetPath, m_ProvideHandle.Type.GetElementType());
                    }
                    else if (m_ProvideHandle.Type.IsGenericType && typeof(IList <>) == m_ProvideHandle.Type.GetGenericTypeDefinition())
                    {
                        m_RequestOperation = bundle.LoadAssetWithSubAssetsAsync(assetPath, m_ProvideHandle.Type.GetGenericArguments()[0]);
                    }
                    else
                    {
                        var i = assetPath.LastIndexOf('[');
                        if (i > 0)
                        {
                            var i2 = assetPath.LastIndexOf(']');
                            if (i2 < i)
                            {
                                m_ProvideHandle.Complete <AssetBundle>(null, false, new Exception(string.Format("Invalid index format in internal id {0}", assetPath)));
                            }
                            else
                            {
                                subObjectName      = assetPath.Substring(i + 1, i2 - (i + 1));
                                assetPath          = assetPath.Substring(0, i);
                                m_RequestOperation = bundle.LoadAssetWithSubAssetsAsync(assetPath, m_ProvideHandle.Type);
                            }
                        }
                        else
                        {
                            m_RequestOperation = bundle.LoadAssetAsync(assetPath, m_ProvideHandle.Type);
                        }
                    }
                    m_RequestOperation.completed += ActionComplete;
                }
            }
コード例 #4
0
            private void BeginAssetLoad()
            {
                if (m_AssetBundle == null)
                {
                    m_ProvideHandle.Complete <AssetBundle>(null, false, new Exception("Unable to load dependent bundle from location " + m_ProvideHandle.Location));
                }
                else
                {
                    var assetPath = m_ProvideHandle.ResourceManager.TransformInternalId(m_ProvideHandle.Location);
                    if (m_ProvideHandle.Type.IsArray)
                    {
#if !UNITY_2021_1_OR_NEWER
                        if (AsyncOperationHandle.IsWaitingForCompletion)
                        {
                            GetArrayResult(m_AssetBundle.LoadAssetWithSubAssets(assetPath, m_ProvideHandle.Type.GetElementType()));
                            CompleteOperation();
                        }
                        else
#endif
                        m_RequestOperation = m_AssetBundle.LoadAssetWithSubAssetsAsync(assetPath, m_ProvideHandle.Type.GetElementType());
                    }
                    else if (m_ProvideHandle.Type.IsGenericType && typeof(IList <>) == m_ProvideHandle.Type.GetGenericTypeDefinition())
                    {
#if !UNITY_2021_1_OR_NEWER
                        if (AsyncOperationHandle.IsWaitingForCompletion)
                        {
                            GetListResult(m_AssetBundle.LoadAssetWithSubAssets(assetPath, m_ProvideHandle.Type.GetGenericArguments()[0]));
                            CompleteOperation();
                        }
                        else
#endif
                        m_RequestOperation = m_AssetBundle.LoadAssetWithSubAssetsAsync(assetPath, m_ProvideHandle.Type.GetGenericArguments()[0]);
                    }
                    else
                    {
                        if (ResourceManagerConfig.ExtractKeyAndSubKey(assetPath, out string mainPath, out string subKey))
                        {
                            subObjectName = subKey;
#if !UNITY_2021_1_OR_NEWER
                            if (AsyncOperationHandle.IsWaitingForCompletion)
                            {
                                GetAssetSubObjectResult(m_AssetBundle.LoadAssetWithSubAssets(mainPath, m_ProvideHandle.Type));
                                CompleteOperation();
                            }
                            else
#endif
                            m_RequestOperation = m_AssetBundle.LoadAssetWithSubAssetsAsync(mainPath, m_ProvideHandle.Type);
                        }
コード例 #5
0
    private static int LoadAssetWithSubAssetsAsync(IntPtr L)
    {
        int result;

        try
        {
            int num = LuaDLL.lua_gettop(L);
            if (num == 2 && TypeChecker.CheckTypes(L, 1, typeof(AssetBundle), typeof(string)))
            {
                AssetBundle        assetBundle = (AssetBundle)ToLua.ToObject(L, 1);
                string             text        = ToLua.ToString(L, 2);
                AssetBundleRequest o           = assetBundle.LoadAssetWithSubAssetsAsync(text);
                ToLua.PushObject(L, o);
                result = 1;
            }
            else if (num == 3 && TypeChecker.CheckTypes(L, 1, typeof(AssetBundle), typeof(string), typeof(Type)))
            {
                AssetBundle        assetBundle2 = (AssetBundle)ToLua.ToObject(L, 1);
                string             text2        = ToLua.ToString(L, 2);
                Type               type         = (Type)ToLua.ToObject(L, 3);
                AssetBundleRequest o2           = assetBundle2.LoadAssetWithSubAssetsAsync(text2, type);
                ToLua.PushObject(L, o2);
                result = 1;
            }
            else
            {
                result = LuaDLL.luaL_throw(L, "invalid arguments to method: UnityEngine.AssetBundle.LoadAssetWithSubAssetsAsync");
            }
        }
        catch (Exception e)
        {
            result = LuaDLL.toluaL_exception(L, e, null);
        }
        return(result);
    }
コード例 #6
0
ファイル: AssetBundleWrap.cs プロジェクト: 737871854/S6Client
    static int LoadAssetWithSubAssetsAsync(IntPtr L)
    {
        int count = LuaDLL.lua_gettop(L);

        if (count == 2)
        {
            AssetBundle        obj  = LuaScriptMgr.GetUnityObject <AssetBundle>(L, 1);
            string             arg0 = LuaScriptMgr.GetLuaString(L, 2);
            AssetBundleRequest o    = obj.LoadAssetWithSubAssetsAsync(arg0);
            LuaScriptMgr.PushObject(L, o);
            return(1);
        }
        else if (count == 3)
        {
            AssetBundle        obj  = LuaScriptMgr.GetUnityObject <AssetBundle>(L, 1);
            string             arg0 = LuaScriptMgr.GetLuaString(L, 2);
            Type               arg1 = LuaScriptMgr.GetTypeObject(L, 3);
            AssetBundleRequest o    = obj.LoadAssetWithSubAssetsAsync(arg0, arg1);
            LuaScriptMgr.PushObject(L, o);
            return(1);
        }
        else
        {
            LuaDLL.luaL_error(L, "invalid arguments to method: AssetBundle.LoadAssetWithSubAssetsAsync");
        }

        return(0);
    }
コード例 #7
0
        static AsyncOperationSet GetAssetBundleRequestMultiple <T>(AssetBundle assetBundle, AssetEntryRecord assetEntryRecord) where T : UnityEngine.Object
        {
            string             assetName = assetEntryRecord.AssetName;
            AssetBundleRequest request   = assetBundle.LoadAssetWithSubAssetsAsync <T>(assetName);

            return(AsyncOperationSet.CreateByAssetBundleRequest(request));
        }
コード例 #8
0
        private IEnumerator LoadAssetOperation(string targetFullPath, string assetName)
        {
            AssetBundle assetBundle = _loadedAssetBundles[targetFullPath];

            yield return(WaitByDependency(assetBundle));

            AssetBundleRequest assetBundleRequest = assetBundle.LoadAssetWithSubAssetsAsync(assetName);

            yield return(assetBundleRequest);

            foreach (var asset in assetBundleRequest.allAssets)
            {
                Debug.LogFormat("Load Asset {0} : {1} From {2}", asset.name, asset.GetType(), targetFullPath);
                _loadedAssetDictionary[asset.name] = asset;

                foreach (var loadAssetAction in _loadAssetActions)
                {
                    loadAssetAction(asset);
                }

                {
                    var manifest = asset as AssetBundleManifest;

                    if (manifest != null)
                    {
                        Debug.LogFormat("AssetBundleManifest を設定しました. 依存関係を考慮するようにします.");
                        _assetBundleManifest = manifest;
                    }
                }
            }
        }
コード例 #9
0
ファイル: ResourceManager.cs プロジェクト: XCVG/commoncore
        /// <summary>
        /// Loads an object from an asset bundle, special-casing sprites and other subasset edge cases (asynchronous version)
        /// </summary>
        public static async Task <UnityEngine.Object> LoadAssetFromBundleAsync(string bundledName, AssetBundle bundle)
        {
            var bundleLoadRequest = bundle.LoadAssetAsync(bundledName);

            while (!bundleLoadRequest.isDone)
            {
                await Task.Yield();
            }

            var  asset     = bundleLoadRequest.asset;
            Type assetType = asset.GetType();

            if (assetType == typeof(Texture2D)) //could be a sprite!
            {
                var bundleLoadRequest2 = bundle.LoadAssetWithSubAssetsAsync <Sprite>(bundledName);

                while (!bundleLoadRequest2.isDone)
                {
                    await Task.Yield();
                }

                var spriteAssets = bundleLoadRequest2.allAssets;
                if (spriteAssets != null && spriteAssets.Length > 0)
                {
                    return(spriteAssets[0]);
                }

                //will that work?
            }

            return(asset);
        }
コード例 #10
0
            private IEnumerator _LoadAsync(AssetBundle assetBundle)
            {
                if (_type != null && _type == typeof(Sprite))
                {
                    var request = assetBundle.LoadAssetWithSubAssetsAsync(_assetPath);
                    yield return(request);

                    if (!_disposed)
                    {
                        _objects = request.allAssets;
                        _object  = _objects != null && _objects.Length > 0 ? _objects[0] : null;
                        Complete();
                    }
                }
                else
                {
                    var request = _type != null
                        ? assetBundle.LoadAssetAsync(_assetPath, _type)
                        : assetBundle.LoadAssetAsync(_assetPath);

                    yield return(request);

                    if (!_disposed)
                    {
                        _object = request.asset;
                        Complete();
                    }
                }
            }
コード例 #11
0
    public IEnumerator InstantiateAvatar(Action onInstantiated)
    {
        Debug.Log("InstantiateAvatar");
        if (loadedAssetBundle == null)
        {
            UIManager.instance.SetMainTitle("Error", "Could not load avatar!");
            yield break;
        }
        UIManager.instance.SetMainTitle(null, "Loading...");
        var request = loadedAssetBundle.LoadAssetWithSubAssetsAsync("assets/_customavatar.prefab");

        while (!request.isDone && !abort)
        {
            Debug.Log("loading " + request.progress);//comment this out in build
            UIManager.instance.SetMainLoadingBarProgress(request.progress);
            yield return(null);
        }
        if (abort)
        {
            Debug.Log("Aborting from instantiation...");
            request = null;
        }
        else
        {
            UIManager.instance.SetMainTitle(null, "Instantiating...");

            if ((request.asset as GameObject).transform.FindChild("WTA_IGNORE") != null)
            {
                Debug.Log("found WTA_IGNORE. Aborting.");
                UIManager.instance.SetMainTitle("Error", "This avatar is not public.");
                request = null;
                yield break;
            }

            instantiatedAvatar = Instantiate(request.asset) as GameObject;
            instantiatedAvatar.transform.position = Vector3.zero;

            var bounds = instantiatedAvatar.GetComponentInChildren <Renderer>().bounds.center;
            //instantiatedAvatar.transform.position = new Vector3(bounds.x, instantiatedAvatar.transform.position.y, bounds.z);//negative?

            //WebGL has issues with alot of shaders.
#if UNITY_WEBGL && !UNITY_EDITOR
            PrintOrReplaceShaders(instantiatedAvatar, false, true);
#endif

            if (instantiatedAvatar.GetComponent <Animator>())
            {
                instantiatedAvatar.GetComponent <Animator>().runtimeAnimatorController = GameObject.FindObjectOfType <ObjectHolder>().animationController;
                instantiatedAvatar.GetComponent <Animator>().applyRootMotion           = false;
            }

            UIManager.instance.SetMainLoadingBarProgress(1f);
            //UIManager.instance.SetStatusText();
            loadedAssetBundle.Unload(false);

            onInstantiated();
        }
    }
コード例 #12
0
        //-----------------------------------
        internal IEnumerator LoadAssetAsyncImpl(string assetName, Type type, AssetBundleAssetLoadRequest req, int mode)
        {
            asyncCount++;
            AssetBundleRequest abr = null;

            if (mode == 0)
            {
                abr = assetBundle.LoadAssetAsync(assetName, type);
            }
            else if (mode == 1)
            {
                abr = assetBundle.LoadAssetWithSubAssetsAsync(assetName, type);
            }
            yield return(abr);

            asyncCount--;

            if (IsDispose)
            {
                //应该不会执行. 首先asyncCount>0的时候不会被处置. 如果是重置Mangager, 会停止所有协程
                Debug.LogError("AssetBundleBundle is Dispose!");
            }

            if (!IsDispose)
            {
                if (mode == 0)
                {
                    if (abr.asset)
                    {
                        req.SetAsset(CreateAsset(abr.asset, assetName));
                    }
                }
                else if (mode == 1)
                {
                    if (abr.asset)
                    {
                        req.SetAsset(CreateAsset(abr.asset, assetName));
                    }
                    if (abr.allAssets != null)
                    {
                        List <AssetBundleAsset> rli = new List <AssetBundleAsset>();
                        foreach (var asset in abr.allAssets)
                        {
                            rli.Add(CreateAsset(asset, assetName));
                        }
                        req.SetAllAssets(rli.ToArray());
                    }
                }
            }
            req.SetComplete();
        }
コード例 #13
0
    private IEnumerator LoadCorotine <T>(string _name, AssetBundle _assetBundle, Action <T[], string> _callBack) where T : UnityEngine.Object
    {
        AssetBundleRequest request = _assetBundle.LoadAssetWithSubAssetsAsync <T>(_name);

        yield return(request);

        T[] asset = new T[request.allAssets.Length];

        for (int i = 0; i < asset.Length; i++)
        {
            asset[i] = request.allAssets[i] as T;
        }

        _callBack(asset, string.Empty);
    }
コード例 #14
0
            public void Start(ProvideHandle provideHandle)
            {
                m_ProvideHandle = provideHandle;
                Type t = m_ProvideHandle.Type;


                m_RequestOperation = null;

                List <object> deps = new List <object>(); // TODO: garbage. need to pass actual count and reuse the list

                m_ProvideHandle.GetDependencies(deps);
                AssetBundle bundle = AssetBundleProvider.LoadBundleFromDependecies(deps);

                if (bundle == null)
                {
                    m_ProvideHandle.Complete <AssetBundle>(null, false, new Exception("Unable to load dependent bundle from location " + m_ProvideHandle.Location));
                }
                else
                {
                    if (t.IsArray)
                    {
                        m_RequestOperation = bundle.LoadAssetWithSubAssetsAsync(m_ProvideHandle.Location.InternalId, t.GetElementType());
                    }
                    else if (t.IsGenericType && typeof(IList <>) == t.GetGenericTypeDefinition())
                    {
                        m_RequestOperation = bundle.LoadAssetWithSubAssetsAsync(m_ProvideHandle.Location.InternalId, t.GetGenericArguments()[0]);
                    }
                    else
                    {
                        m_RequestOperation = bundle.LoadAssetAsync(m_ProvideHandle.Location.InternalId, t);
                    }

                    m_RequestOperation.completed += ActionComplete;
                    provideHandle.SetProgressCallback(ProgressCallback);
                }
            }
コード例 #15
0
	/// <summary>
	/// 読み込み開始
	/// </summary>
	public override void Load(AssetBundle assetBundle)
	{
		if (this.request == null)
		{
			if (assetBundle.Contains(this.assetName))
			{
				this.request = assetBundle.LoadAssetWithSubAssetsAsync<T>(this.assetName);
				this.request.completed += (op) =>
				{
					this.onLoad.SafetyInvoke();
					this.onLoad = null;
				};
			}
			else
			{
				Debug.LogWarningFormat("AssetBundle={0}にassetName={1}は含まれていません", assetBundle.name, this.assetName);
			}
		}
	}
コード例 #16
0
        public IObservable <Object> LoadFrom(AssetBundle bundle) => Observable.Defer(() =>
        {
            if (bundle == null)
            {
                throw new ArgumentNullException(nameof(bundle));
            }
            switch (LoadMethod)
            {
            case LoadMethod.Single:
                return(bundle.LoadAssetAsync(AssetName, AssetType)
                       .AsAsyncOperationObservable().Select(req => req.asset));

            case LoadMethod.Multi:
                return(bundle.LoadAssetWithSubAssetsAsync(AssetName, AssetType)
                       .AsAsyncOperationObservable().SelectMany(req => req.allAssets));

            default: throw new ArgumentException("Unknown LoadMethod. " + LoadMethod);
            }
        });
コード例 #17
0
    public static int LoadAssetWithSubAssetsAsync(IntPtr l)
    {
        int result;

        try
        {
            int num = LuaDLL.lua_gettop(l);
            if (num == 2)
            {
                AssetBundle assetBundle = (AssetBundle)LuaObject.checkSelf(l);
                string      name;
                LuaObject.checkType(l, 2, out name);
                AssetBundleRequest o = assetBundle.LoadAssetWithSubAssetsAsync(name);
                LuaObject.pushValue(l, true);
                LuaObject.pushValue(l, o);
                result = 2;
            }
            else if (num == 3)
            {
                AssetBundle assetBundle2 = (AssetBundle)LuaObject.checkSelf(l);
                string      name2;
                LuaObject.checkType(l, 2, out name2);
                Type type;
                LuaObject.checkType(l, 3, out type);
                AssetBundleRequest o2 = assetBundle2.LoadAssetWithSubAssetsAsync(name2, type);
                LuaObject.pushValue(l, true);
                LuaObject.pushValue(l, o2);
                result = 2;
            }
            else
            {
                LuaObject.pushValue(l, false);
                LuaDLL.lua_pushstring(l, "No matched override function LoadAssetWithSubAssetsAsync to call");
                result = 2;
            }
        }
        catch (Exception e)
        {
            result = LuaObject.error(l, e);
        }
        return(result);
    }
コード例 #18
0

        
コード例 #19
0
        public AvatarPrefab(AssetBundle assetBundle, Action <GameObject> loadedCallback)
        {
            if (assetBundle == null)
            {
                return;
            }

            var assetBundleRequest = assetBundle.LoadAssetWithSubAssetsAsync <GameObject>(GameObjectName);

            assetBundleRequest.completed += LoadAssetCompleted;

            void LoadAssetCompleted(AsyncOperation asyncOperation)
            {
                Prefab = (GameObject)assetBundleRequest.asset;
                if (Prefab != null)
                {
                    _descriptor = Prefab.GetComponent <AvatarDescriptor>();
                }

                loadedCallback(Prefab);
            }
        }
コード例 #20
0
ファイル: AssetBundleWrap.cs プロジェクト: moto2002/rongyaojt
    private static int LoadAssetWithSubAssetsAsync(IntPtr L)
    {
        int num = LuaDLL.lua_gettop(L);

        if (num == 2)
        {
            AssetBundle        assetBundle = (AssetBundle)LuaScriptMgr.GetUnityObjectSelf(L, 1, "AssetBundle");
            string             luaString   = LuaScriptMgr.GetLuaString(L, 2);
            AssetBundleRequest o           = assetBundle.LoadAssetWithSubAssetsAsync(luaString);
            LuaScriptMgr.PushObject(L, o);
            return(1);
        }
        if (num == 3)
        {
            AssetBundle        assetBundle2 = (AssetBundle)LuaScriptMgr.GetUnityObjectSelf(L, 1, "AssetBundle");
            string             luaString2   = LuaScriptMgr.GetLuaString(L, 2);
            Type               typeObject   = LuaScriptMgr.GetTypeObject(L, 3);
            AssetBundleRequest o2           = assetBundle2.LoadAssetWithSubAssetsAsync(luaString2, typeObject);
            LuaScriptMgr.PushObject(L, o2);
            return(1);
        }
        LuaDLL.luaL_error(L, "invalid arguments to method: AssetBundle.LoadAssetWithSubAssetsAsync");
        return(0);
    }
コード例 #21
0
        public IEnumerator  LoadResAsys(BundleInfo tmpNode)
        {
            if (this.ABRes != null)
            {
                if (tmpNode.isSingle)
                {
                    AssetBundleRequest tmpRequest = ABRes.LoadAssetAsync(tmpNode.resName);
                    yield return(tmpRequest);

                    // Debug.Log("tmpRequest resName== "+tmpNode.resName+"==="+tmpRequest.asset.name);


                    //GameObject.Instantiate(tmpRequest.asset);
                    tmpNode.AddReses(tmpRequest.asset);


                    yield return(null);
                }
                else
                {
                    AssetBundleRequest tmpRequest = ABRes.LoadAssetWithSubAssetsAsync(tmpNode.resName);


                    yield return(tmpRequest);

                    // Debug.Log("tmpRequest mutti resName== " + tmpNode.resName+"==="+tmpRequest.allAssets.Length);
                    tmpNode.AddReses(tmpRequest.allAssets);

                    yield return(null);
                }
            }
            else
            {
                Debuger.Log("IResloader AB Not Cantain ==" + tmpNode.resName);
            }
        }
コード例 #22
0
        static AssetBundleRequest GetAssetBundleRequestMultiple <T>(AssetBundle assetBundle, AssetEntryRecord assetEntryRecord) where T : UnityEngine.Object
        {
            string assetName = assetEntryRecord.AssetName;

            return(assetBundle.LoadAssetWithSubAssetsAsync <T>(assetName));
        }
コード例 #23
0