| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221 | 
							- #if !COMBAT_SERVER
 
- using System;
 
- using System.Collections.Generic;
 
- using System.IO;
 
- using System.Text;
 
- using LitJson;
 
- using UnityEngine;
 
- namespace Utility
 
- {
 
-     /// <summary>
 
-     /// 用来做JsonUtility.FromJson的容器类
 
-     /// </summary>
 
-     [Serializable]
 
-     public class AllPackedAssetsInfo
 
-     {
 
-         public List<AssetInfo> assetsList;
 
-      
 
- //        public List<BundleInfo> bundlsList;
 
-     }
 
-     [Serializable]
 
-     public class AssetInfo
 
-     {
 
-         public string name;
 
-         public string bundle;
 
-         public string localPath;
 
-         public bool isConfig;
 
-         public LitJson.JsonData ToJson()
 
-         {
 
-             JsonData jsonData = new JsonData();
 
-             jsonData["name"] = name;
 
-             jsonData["bundle"] = bundle;
 
-             jsonData["isConfig"] = isConfig;
 
-             if (!string.IsNullOrEmpty(localPath))
 
-             {
 
-                 jsonData["localPath"] = localPath;
 
-             }
 
-             return jsonData;
 
-         }
 
-     }
 
-     [Serializable]
 
-     public struct BundleInfo
 
-     {
 
- //        public string name;
 
- //        public string MD5;
 
- //        public long size;//byte
 
- //
 
- //        public JsonData ToJson()
 
- //        {
 
- //            JsonData jsonData = new JsonData();
 
- //            jsonData["name"] = name;
 
- //            jsonData["MD5"] = MD5;
 
- //            jsonData["size"] = size;
 
- //            return jsonData;
 
- //        }
 
-     }
 
-     public class AssetsPacker
 
-     {
 
-         private static char[] splits = new char[] { '/', '.' };
 
-         public static string SpliteName(string name)
 
-         {
 
-             string[] splitName = name.Split(splits);
 
-             if (splitName.Length > 2)
 
-             {
 
-                 return splitName[splitName.Length - 2];
 
-             }
 
-             else
 
-             {
 
-                 return "";
 
-             }
 
-         }
 
- //        public static BundleInfo CreateBundleInfo(string name, List<string> dependence, string MD5Value)
 
- //        {
 
- //            BundleInfo bundle = new BundleInfo();
 
- //            bundle.name = SpliteName(name);
 
- //
 
- //            if (dependence != null)
 
- //            {
 
- //                dependence.ForEach(str => SpliteName(str));
 
- //            }
 
- //
 
- //            bundle.MD5 = MD5Value;
 
- //            return bundle;
 
- //        }
 
-         #region Write Files
 
-         /*
 
-         private static XmlAttribute addXmlAttribute(XmlDocument doc, string name, string val)
 
-         {
 
-             XmlAttribute attr = doc.CreateAttribute(name);
 
-             attr.Value = val;
 
-             return attr;
 
-         }
 
-         private static XmlNode CreateNode(AssetInfo asset, XmlDocument doc)
 
-         {
 
-             XmlNode node = doc.CreateElement("AssetConfig");
 
-             node.Attributes.Append(addXmlAttribute(doc, "AssetName", asset.name));
 
-             node.Attributes.Append(addXmlAttribute(doc, "BundleName", asset.bundle));
 
-             if (!string.IsNullOrEmpty(asset.localPath))
 
-             {
 
-                 node.Attributes.Append(addXmlAttribute(doc, "AssetPath", asset.localPath));
 
-             }
 
-             return node;
 
-         }
 
-         private static XmlNode CreateNode(BundleInfo bundle, XmlDocument doc)
 
-         {
 
-             XmlNode node = doc.CreateElement("BundleConfig");
 
-             node.Attributes.Append(addXmlAttribute(doc, "BundleName", bundle.name));
 
-             node.Attributes.Append(addXmlAttribute(doc, "MD5", bundle.MD5));
 
-             node.Attributes.Append(addXmlAttribute(doc, "Size", bundle.size.SplitToString()));
 
-             //             if (bundle.depedenceBundles != null)
 
-             //             {
 
-             //                 node.Attributes.Append(addXmlAttribute(doc, "DependenceCount", bundle.depedenceBundles.Count.SplitToString()));
 
-             //                 for (int i = 0; i < bundle.depedenceBundles.Count; i++)
 
-             //                 {
 
-             //                     node.Attributes.Append(addXmlAttribute(doc, "DependenceBundle" + i, bundle.depedenceBundles [i]));
 
-             //                 }
 
-             //             }
 
-             return node;
 
-         }
 
-         [ExecuteInEditMode]
 
-         public static void WriteInfoToXMLFile(Dictionary<string, AssetInfo> assetList, Dictionary<string, BundleInfo> bundleList, string savePath)
 
-         {
 
-             if (null == assetList ||
 
-                 null == bundleList)
 
-             {
 
-                 return;
 
-             }
 
-             XmlDocument doc = new XmlDocument();
 
-             XmlDeclaration desc = doc.CreateXmlDeclaration("1.0", "utf-8", null);
 
-             doc.AppendChild(desc);
 
-             XmlElement root = doc.CreateElement("PackConfig");
 
-             doc.AppendChild(root);
 
-             XmlElement assetsRoot = doc.CreateElement("Assets");
 
-             root.AppendChild(assetsRoot);
 
-             foreach (var kvp in assetList)
 
-             {
 
-                 XmlNode node = CreateNode(kvp.Value, doc);
 
-                 assetsRoot.AppendChild(node);
 
-             }
 
-             XmlElement bundlesRoot = doc.CreateElement("Bundles");
 
-             root.AppendChild(bundlesRoot);
 
-             foreach (var kvp in bundleList)
 
-             {
 
-                 XmlNode node = CreateNode(kvp.Value, doc);
 
-                 bundlesRoot.AppendChild(node);
 
-             }
 
-             if (File.Exists(savePath))
 
-             {
 
-                 File.Delete(savePath);
 
-             }
 
-             doc.Save(savePath);
 
-         }
 
-         */
 
-         [ExecuteInEditMode]
 
-         public static AllPackedAssetsInfo WriteInfoToJsonFile(Dictionary<string, AssetInfo> assetDict,
 
-              string savePath)
 
-         {
 
-             AllPackedAssetsInfo allPackedInfo = new AllPackedAssetsInfo();
 
-             allPackedInfo.assetsList = new List<AssetInfo>();
 
-             allPackedInfo.assetsList.AddRange(assetDict.Values);
 
- //            allPackedInfo.bundlsList = new List<BundleInfo>();
 
- //            allPackedInfo.bundlsList.AddRange(bundleDict.Values);
 
-             string content = JsonUtility.ToJson(allPackedInfo);
 
-             if (File.Exists(savePath))
 
-             {
 
-                 File.Delete(savePath);
 
-             }
 
-             Encoding encoding = new UTF8Encoding(false);
 
-             File.WriteAllText(savePath, content, encoding);
 
-             return allPackedInfo;
 
-             //             JsonData jsonRoot = new JsonData();
 
-             //             JsonData assetsRoot = new JsonData();
 
-             //             JsonData bundleRoot = new JsonData();
 
-             //             jsonRoot["Assets"] = assetsRoot;
 
-             //             jsonRoot["Bundles"] = bundleRoot;
 
-             //
 
-             //             foreach (var kvp in assetDict)
 
-             //             {
 
-             //                 assetsRoot[kvp.Value.name] = kvp.Value.ToJson();
 
-             //             }
 
-             //
 
-             //             foreach (var kvp in bundleDict)
 
-             //             {
 
-             //                 bundleRoot[kvp.Value.name] = kvp.Value.ToJson();
 
-             //             }
 
-             //
 
-             //             if (File.Exists(savePath))
 
-             //             {
 
-             //                 File.Delete(savePath);
 
-             //             }
 
-             //             Encoding encoding = new UTF8Encoding(false);
 
-             //             File.WriteAllText(savePath, jsonRoot.ToJson(), encoding);
 
-         }
 
-         #endregion
 
-     }//AssetsPackInfo
 
- }
 
- #endif
 
 
  |