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); } }