//4.真正的加载ab或获取已加载的ab private ABInfo LoadAbReal(string abPath, out bool isLoaded) { //已加载,直接返回 if (m_abLoaded.ContainsKey(abPath)) { var abInfo = m_abLoaded[abPath]; if (!ABInfo.Empty(abInfo)) { isLoaded = true; abInfo.usedFrame = Time.frameCount; return(abInfo); } } isLoaded = false; //未加载,走加载流程 //过滤无用路径和无效路径 if (string.IsNullOrEmpty(abPath)) { return(null); } if (!m_abAll.Contains(abPath)) { return(null); } var realPath = GetAbPath(abPath); var ab = AssetBundle.LoadFromFile(abPath); if (ab != null) { var abInfo = new ABInfo(); abInfo.ab = ab; abInfo.abDeps = new AssetRefList(); abInfo.usedFrame = Time.frameCount; m_abLoaded.Add(abPath, abInfo); } return(null); }