void initAsset() { preloadResult = null; preloadResult = new PreloadResult(); GameKernel.CreateForInitData(); IResourceMgr resourceMgr = GameKernel.Get <IResourceMgr>(); ResBinData iResBinData = NewResBinDataForPreLoad(); //预加载资源,不需要提前获取mainAsset List <string> residentGoList = iResBinData.GetImmortalAssetList(1); List <string> residentACList = iResBinData.GetImmortalAssetList(3); List <string> residentTexture2DList = iResBinData.GetImmortalAssetList(5); List <string> residentAudioClipList = iResBinData.GetImmortalAssetList(7); List <string> residentAnimClipList = iResBinData.GetImmortalAssetList(9); //预加载资源,需要提前获取mainAsset List <string> residentPreloadGoList = iResBinData.GetImmortalAssetList(2); List <string> residentPreloadACList = iResBinData.GetImmortalAssetList(4); List <string> residentPreloadTexture2DList = iResBinData.GetImmortalAssetList(6); List <string> residentPreloadAudioClipList = iResBinData.GetImmortalAssetList(8); List <string> residentPreloadAnimClipList = iResBinData.GetImmortalAssetList(10); if (residentGoList != null && residentGoList.Count > 0) { this.preloadResult.TotalCount += residentGoList.Count; } if (residentPreloadGoList != null && residentPreloadGoList.Count > 0) { this.preloadResult.TotalCount += residentPreloadGoList.Count; } if (residentACList != null && residentACList.Count > 0) { this.preloadResult.TotalCount += residentACList.Count; } if (residentPreloadACList != null && residentPreloadACList.Count > 0) { this.preloadResult.TotalCount += residentPreloadACList.Count; } if (residentTexture2DList != null && residentTexture2DList.Count > 0) { this.preloadResult.TotalCount += residentTexture2DList.Count; } if (residentPreloadTexture2DList != null && residentPreloadTexture2DList.Count > 0) { this.preloadResult.TotalCount += residentPreloadTexture2DList.Count; } if (residentAudioClipList != null && residentAudioClipList.Count > 0) { this.preloadResult.TotalCount += residentAudioClipList.Count; } if (residentPreloadAudioClipList != null && residentPreloadAudioClipList.Count > 0) { this.preloadResult.TotalCount += residentPreloadAudioClipList.Count; } if (residentAnimClipList != null && residentAnimClipList.Count > 0) { this.preloadResult.TotalCount += residentAnimClipList.Count; } if (residentPreloadAnimClipList != null && residentPreloadAnimClipList.Count > 0) { this.preloadResult.TotalCount += residentPreloadAnimClipList.Count; } if (residentGoList != null) { for (int i = 0; i < residentGoList.Count; i++) { abp = new AssetBundleParams(residentGoList[i], typeof(GameObject)); resourceMgr.LoadResidentMemoryObjAsync(abp); } } if (residentPreloadGoList != null) { for (int i = 0; i < residentPreloadGoList.Count; i++) { abp = new AssetBundleParams(residentPreloadGoList[i], typeof(GameObject)); abp.IsPreloadMainAsset = true; resourceMgr.LoadResidentMemoryObjAsync(abp); } } if (residentACList != null) { for (int i = 0; i < residentACList.Count; i++) { abp = new AssetBundleParams(residentACList[i], typeof(RuntimeAnimatorController)); resourceMgr.LoadResidentMemoryObjAsync(abp); } } if (residentPreloadACList != null) { for (int i = 0; i < residentPreloadACList.Count; i++) { abp = new AssetBundleParams(residentPreloadACList[i], typeof(RuntimeAnimatorController)); abp.IsPreloadMainAsset = true; resourceMgr.LoadResidentMemoryObjAsync(abp); } } if (residentTexture2DList != null) { for (int i = 0; i < residentTexture2DList.Count; i++) { abp = new AssetBundleParams(residentTexture2DList[i], typeof(Texture2D)); resourceMgr.LoadResidentMemoryObjAsync(abp); } } if (residentPreloadTexture2DList != null) { for (int i = 0; i < residentPreloadTexture2DList.Count; i++) { abp = new AssetBundleParams(residentPreloadTexture2DList[i], typeof(Texture2D)); abp.IsPreloadMainAsset = true; resourceMgr.LoadResidentMemoryObjAsync(abp); } } if (residentAudioClipList != null) { for (int i = 0; i < residentAudioClipList.Count; i++) { abp = new AssetBundleParams(residentAudioClipList[i], typeof(AudioClip)); resourceMgr.LoadResidentMemoryObjAsync(abp); } } if (residentPreloadAudioClipList != null) { for (int i = 0; i < residentPreloadAudioClipList.Count; i++) { abp = new AssetBundleParams(residentPreloadAudioClipList[i], typeof(AudioClip)); abp.IsPreloadMainAsset = true; resourceMgr.LoadResidentMemoryObjAsync(abp); } } if (residentAnimClipList != null) { for (int i = 0; i < residentAnimClipList.Count; i++) { abp = new AssetBundleParams(residentAnimClipList[i], typeof(AnimationClip)); resourceMgr.LoadResidentMemoryObjAsync(abp); } } if (residentPreloadAnimClipList != null) { for (int i = 0; i < residentPreloadAnimClipList.Count; i++) { abp = new AssetBundleParams(residentPreloadAnimClipList[i], typeof(AnimationClip)); abp.IsPreloadMainAsset = true; resourceMgr.LoadResidentMemoryObjAsync(abp); } } ReleaseNewResBinData(); }