//---------------------------------------------------------------------------- public bool IsPreLoadView() { ResourceListData data = FileSystem.Instance().GetResData(); if (data == null) { return(false); } sAssetInfo info = sAssetInfo.zero; data.GetAssetBundleInfo(strAssetID, ref info); return(info.bPreLoad); }
//---------------------------------------------------------------------------- private void AddUseAtlas() { m_bHasAddAtlas = true; ResourceListData data = FileSystem.Instance().GetResData(); sAssetInfo info = sAssetInfo.zero; data.GetAssetBundleInfo(strAssetID, ref info); if (info.childListAssetID != null && info.childListAssetID.Count > 0) { int nTotalCount = info.childListAssetID.Count; for (int i = 0; i < nTotalCount; i++) { m_uiSystem.AddUseAtlas(info.childListAssetID[i]); } } }
//---------------------------------------------------------------------------- public virtual void StageLoadViewer() { m_uiSystem.AddPreLoadAsset(strAssetID); ResourceListData data = FileSystem.Instance().GetResData(); sAssetInfo info = sAssetInfo.zero; data.GetAssetBundleInfo(strAssetID, ref info); if (info.childListAssetID != null && info.childListAssetID.Count > 0) { int nTotalCount = info.childListAssetID.Count; for (int i = 0; i < nTotalCount; i++) { m_uiSystem.AddPreLoadAsset(info.childListAssetID[i]); m_uiSystem.AddUseAtlas(info.childListAssetID[i]); } } m_bHasAddAtlas = true; }
//---------------------------------------------------------------------------- public void GetAssetInfo(string strID, ref sAssetInfo info) { m_data.GetAssetBundleInfo(strID, ref info); }
//---------------------------------------------------------------------------- private void StartLoad(sNeedLoadData needLoad) { string strAssetID = needLoad.strAssetID; UnityEngine.Object obj = assetsManager.GetAssetObjByID(strAssetID); if (obj != null) { Callback <string, UnityEngine.Object> callback = needLoad.callback as Callback <string, UnityEngine.Object>; callback(strAssetID, obj); return; } sAssetInfo info = sAssetInfo.zero; m_ResourceList.GetAssetBundleInfo(strAssetID, ref info); string strBaseDir = GetResDirByPath(info.strFile); string path = info.strFile; if (m_bundleDependenciseDict.ContainsKey(path)) { List <string> strDependecise = m_bundleDependenciseDict[path]; for (int i = 0; i < strDependecise.Count; i++) { if (!m_assetBundleDict.ContainsKey(strDependecise[i])) { AssetBundle tempBundle = AssetBundle.LoadFromFile(GetResPathByName(strDependecise[i])); if (tempBundle != null) { m_assetBundleDict.Add(strDependecise[i], tempBundle); } else { Debug.LogErrorFormat("资源加载失败:{0}", strDependecise[i]); } } } path = strBaseDir + path; AssetBundle bundle = null; if (!m_assetBundleDict.ContainsKey(info.strFile)) { bundle = AssetBundle.LoadFromFile(path); if (bundle != null) { m_assetBundleDict.Add(info.strFile, bundle); } else { Debug.LogErrorFormat("资源加载失败:{0}", path); } } else { bundle = m_assetBundleDict[info.strFile]; } string loadAssetName = string.IsNullOrEmpty(info.assetName) ? info.strName : info.assetName; UnityEngine.Object[] tempObjList = bundle.LoadAllAssets(); var count = tempObjList.Length; for (int i = 0; i < tempObjList.Length; i++) { ProcessAsset(strAssetID, tempObjList[i], needLoad.callback, info.eAssetType, count, i); ProcessStreamedAsset(info, tempObjList[i], bundle); } return; } needLoad.callback?.Invoke(strAssetID, null); Debug.LogError("配置了不存在的资源:" + path); return; }