public void Done() { if (request.error != null) { return; //报错或者加载的是场景 } if (LoaderType.Typeof_ABScene.Equals(request.assetType)) { CRequest.SetDone(request); return; } object m_Data = null; if (subAssets) { m_Data = ((AssetBundleRequest)m_Request).allAssets; } else { m_Data = ((AssetBundleRequest)m_Request).asset; } if (m_Data == null) { CRequest.SetError(request, string.Format("load asset({0}) from {1} error, subAssets = {2}", request.assetName, request.assetBundleName, subAssets)); Debug.LogError(request.error); } else { CRequest.SetData(request, m_Data); CRequest.SetDone(request); } }
//同步加载asset internal new void StartSync() { string assetName = request.assetName; var assetType = request.assetType; string[] assetPaths = UnityEditor.AssetDatabase.GetAssetPathsFromAssetBundleAndAssetName(request.assetBundleName, request.assetName); if (assetPaths.Length == 0) { CRequest.SetError(request, "There is no asset path exist ! \"" + request.assetName + "\" in " + request.assetBundleName); Debug.LogError(request.error); } object data = null; foreach (var p in assetPaths) { if (subAssets) { data = UnityEditor.AssetDatabase.LoadAllAssetsAtPath(p); } else { data = UnityEditor.AssetDatabase.LoadAssetAtPath(p, assetType); } // GS_GameLog.LogFormat("LoadAssetAtPath({1},{2}).data={0} ", data, p, assetType); if (data != null && data.GetType().Equals(assetType)) { break; } } if (data == null) { CRequest.SetError(request, "There is no asset data . \"" + request.assetName + "\" in " + request.assetBundleName); Debug.LogError(request.error); } CRequest.SetProgress(request, 1f); CRequest.SetData(request, data); CRequest.SetDone(request); }