public IEnumerator InstantiateABGameObjects()
        {
            var goList = subPromise.asset.GetAssetsByExtensions <GameObject>("glb", "ltf");

            for (int i = 0; i < goList.Count; i++)
            {
                if (loadingCoroutine == null)
                {
                    break;
                }

                if (asset.container == null)
                {
                    break;
                }

                GameObject assetBundleModelGO = UnityEngine.Object.Instantiate(goList[i], asset.container.transform);
                var        list = new List <Renderer>(assetBundleModelGO.GetComponentsInChildren <Renderer>(true));

                //NOTE(Brian): Renderers are enabled in settings.ApplyAfterLoad
                yield return(MaterialCachingHelper.Process(list, enableRenderers: false, settings.cachingFlags));

#if UNITY_EDITOR
                assetBundleModelGO.name = subPromise.asset.assetBundleAssetName;
#endif
                //assetBundleModelGO.transform.SetParent(asset.container.transform, false);
                assetBundleModelGO.transform.ResetLocalTRS();
                yield return(null);
            }

            if (subPromise.asset.ownerAssetBundle != null)
            {
                subPromise.asset.ownerAssetBundle.Unload(false);
            }
        }
        public IEnumerator InstantiateABGameObjects()
        {
            var goList = subPromise.asset.GetAssetsByExtensions <GameObject>("glb", "ltf");

            if (goList.Count == 0)
            {
                if (asset.container != null)
                {
                    UnityEngine.Object.Destroy(asset.container);
                }

                asset.container = null;

                AssetPromiseKeeper_AB.i.Forget(subPromise);

                yield break;
            }

            for (int i = 0; i < goList.Count; i++)
            {
                if (loadingCoroutine == null)
                {
                    break;
                }

                if (asset.container == null)
                {
                    break;
                }

                GameObject assetBundleModelGO = UnityEngine.Object.Instantiate(goList[i], asset.container.transform);
                var        list = new List <Renderer>(assetBundleModelGO.GetComponentsInChildren <Renderer>(true));

                //NOTE(Brian): Renderers are enabled in settings.ApplyAfterLoad
                yield return(MaterialCachingHelper.Process(list, enableRenderers: false, settings.cachingFlags));

                var animators = assetBundleModelGO.GetComponentsInChildren <Animation>(true);

                for (int animIndex = 0; animIndex < animators.Length; animIndex++)
                {
                    animators[animIndex].cullingType = AnimationCullingType.AlwaysAnimate;
                }

#if UNITY_EDITOR
                assetBundleModelGO.name = subPromise.asset.assetBundleAssetName;
#endif
                //assetBundleModelGO.transform.SetParent(asset.container.transform, false);
                assetBundleModelGO.transform.ResetLocalTRS();
                yield return(null);
            }
        }