Exemplo n.º 1
0
 /// <summary>
 /// 获取所有热更包信息
 /// </summary>
 void GetHotAB()
 {
     if (m_GameVersion != null && m_GameVersion.Pathces != null && m_GameVersion.Pathces.Length > 0)
     {
         Pathces lastPatches = m_GameVersion.Pathces[m_GameVersion.Pathces.Length - 1];
         if (lastPatches != null && lastPatches.Files != null)
         {
             foreach (Patch patch in lastPatches.Files)
             {
                 m_HotFixDic.Add(patch.Name, patch);
             }
         }
     }
 }
Exemplo n.º 2
0
        /// <summary>
        /// 拷贝AB包,生成XML
        /// </summary>
        /// <param name="changeList"></param>
        /// <param name="hotCount"></param>
        static void CopyABAndGeneratXml(List <string> changeList, string hotCount)
        {
            if (!Directory.Exists(m_HotPath))
            {
                Directory.CreateDirectory(m_HotPath);
            }

            BuildApp.DeleteDir(m_HotPath);

            //从AB包目录中,将变化的AB包拷贝到热更目录
            foreach (string str in changeList)
            {
                if (!str.EndsWith(".manifest"))
                {
                    File.Copy(m_BundleTargetPath + "/" + str, m_HotPath + "/" + str);
                }
            }

            //生成服务器Patch文件
            DirectoryInfo directory = new DirectoryInfo(m_HotPath);

            FileInfo[] files   = directory.GetFiles("*", SearchOption.AllDirectories);
            Pathces    patches = new Pathces();

            patches.Version = 1;
            patches.Des     = "";
            patches.Files   = new List <Patch>();
            for (int i = 0; i < files.Length; ++i)
            {
                Patch patch = new Patch();
                patch.Md5      = MD5Manager.Instance.BuildFileMd5(files[i].FullName);
                patch.Name     = files[i].Name;
                patch.Size     = files[i].Length / 1024.0f;
                patch.Platform = EditorUserBuildSettings.activeBuildTarget.ToString();
                patch.Url      = FrameConstr.m_ResServerIp + "AssetBundle/" + PlayerSettings.bundleVersion + "/" + hotCount + "/" + files[i].Name;
                patches.Files.Add(patch);
            }
            BinarySerializeOpt.Xmlserialize(m_HotPath + "/Patch.xml", patches);
        }