private void DoInstantiateComplete() { if (onComplete != null) { Bundle assetInstance = isSub ? (Bundle)AssetBundleLoadManager.instance.mAssetCached[assetName] : AssetBundleLoadManager.InstantiateBundle((Bundle)AssetBundleLoadManager.instance.mAssetCached[assetName]); // 如果是子资源返回bundle资源本身,否则返回其实例对象 onComplete(assetName, assetInstance); } }
// Use this for initialization void Awake() { if (instance == null) { instance = this; DontDestroyOnLoad(gameObject); } else { Destroy(gameObject); } }
/// <summary> /// 聚集子bundle /// </summary> /// <param name="onComplete"></param> internal void CollectSubBundles(System.Action onComplete) { OnCompleteEvent = onComplete; if (hasDependBundle) { subBundles = new Bundle[dependBundles.Length]; foreach (var v in dependBundles) { AssetBundleLoadManager.LoadBundle(v.assetName, this.OnLoadBundle, true); } } else { CallComplete(); } }
protected virtual void OnDestroy() { AssetBundleLoadManager.UnusedGameObjectAsset(assetName, this); }