private static Dictionary <string, Bundle2Check> ReadLocalXML() { Dictionary <string, Bundle2Check> dictionary = new Dictionary <string, Bundle2Check>(); if (!File.Exists(AssetBundleChecker.BUNDLE_INFO_XML_PERSIST_PATH)) { XmlDocument xmlDocument = new XmlDocument(); XmlElement newChild = xmlDocument.CreateElement("BundleInfoes"); xmlDocument.AppendChild(newChild); xmlDocument.Save(AssetBundleChecker.BUNDLE_INFO_XML_PERSIST_PATH); } XmlDocument xmlDocument2 = new XmlDocument(); xmlDocument2.Load(AssetBundleChecker.BUNDLE_INFO_XML_PERSIST_PATH); XmlElement documentElement = xmlDocument2.DocumentElement; foreach (XmlNode xmlNode in documentElement.ChildNodes) { if (xmlNode is XmlElement) { Bundle2Check info = AssetBundleChecker.GetInfo(xmlNode); if (!dictionary.ContainsKey(info.bundleName)) { dictionary.Add(info.bundleName, info); } } } return(dictionary); }
private static Bundle2Check GetInfo(XmlNode node) { Bundle2Check bundle2Check = new Bundle2Check(); string attribute = (node as XmlElement).GetAttribute("bundleName"); bundle2Check.bundleName = attribute; bundle2Check.assetType = int.Parse((node as XmlElement).GetAttribute("assetType")); bundle2Check.bundleVersion = int.Parse((node as XmlElement).GetAttribute("bundleVersion")); bundle2Check.bundleMD5 = (node as XmlElement).GetAttribute("bundleMD5"); bundle2Check.bundleSize = long.Parse((node as XmlElement).GetAttribute("bundleSize")); return(bundle2Check); }
public static List <Bundle2Check> compareBundleInfoes(string text, string localPath) { List <Bundle2Check> list = new List <Bundle2Check>(); Dictionary <string, Bundle2Check> dictionary = AssetBundleChecker.ReadLocalXML(); XmlDocument xmlDocument = new XmlDocument(); xmlDocument.LoadXml(text); XmlElement documentElement = xmlDocument.DocumentElement; string empty = string.Empty; foreach (XmlNode xmlNode in documentElement.ChildNodes) { if (xmlNode is XmlElement) { Bundle2Check info = AssetBundleChecker.GetInfo(xmlNode); if (dictionary.ContainsKey(info.bundleName)) { string path = Application.persistentDataPath + "/" + info.bundleName + ".unity3d"; if (!File.Exists(path) || !info.bundleMD5.Equals(dictionary[info.bundleName].bundleMD5)) { Bundle2Check item = new Bundle2Check { assetType = info.assetType, bundleMD5 = info.bundleMD5, bundleVersion = info.bundleVersion, bundleName = info.bundleName, bundleSize = info.bundleSize }; list.Add(item); } } else { Bundle2Check item2 = new Bundle2Check { assetType = info.assetType, bundleMD5 = info.bundleMD5, bundleVersion = info.bundleVersion, bundleName = info.bundleName, bundleSize = info.bundleSize }; list.Add(item2); } AssetBundleInfo.Init(info.bundleName, info.assetType); AssetCache.Init(info.bundleName); } } return(list); }