/// <summary>
    /// 拷贝筛选的AB包以及服务器配置表
    /// </summary>
    /// <param name="changList"></param>
    /// <param name="hotCount"></param>
    public static void CopyHotAssetAndCreateXml(List <string> changList, string hotCount)
    {
        if (!Directory.Exists(m_ABHotFixPath))
        {
            Directory.CreateDirectory(m_ABHotFixPath);
        }
        DeleteAllFiles(m_ABHotFixPath);
        foreach (string str in changList)
        {
            if (!str.EndsWith(".manifest"))
            {
                File.Copy(m_BuildABPath + "/" + str, m_ABHotFixPath + "/" + str);
            }
        }
        //生成这个热更资源包的XML
        DirectoryInfo di = new DirectoryInfo(m_ABHotFixPath);

        FileInfo[] fis   = di.GetFiles("*", SearchOption.AllDirectories);
        Patchs     patcs = new Patchs();

        patcs.Version = 2; //自己更改
        patcs.Des     = "测试打包";
        patcs.Files   = new List <Patch>();
        for (int i = 0; i < fis.Length; i++)
        {
            if (changList.Contains(fis[i].Name))
            {
                Patch patch = new Patch();
                patch.Name     = fis[i].Name;
                patch.MD5      = MD5Manager.Instance.BuildFileMd5(fis[i].FullName);
                patch.Platform = EditorUserBuildSettings.activeBuildTarget.ToString();
                patch.URL      = "http://127.0.0.1:80/AssetBundle/" + PlayerSettings.bundleVersion + "/" + hotCount + "/" + fis[i].Name;
                patch.Size     = fis[i].Length / 1024.0f;
                patcs.Files.Add(patch);
            }
        }
        //序列化成XML
        string xmlPath = m_ABHotFixPath + "/HotPatchs.xml";

        using (FileStream stream = new FileStream(xmlPath, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite))
        {
            using (StreamWriter sw = new StreamWriter(stream, System.Text.Encoding.UTF8))
            {
                XmlSerializer x = new XmlSerializer(patcs.GetType());
                x.Serialize(sw, patcs);
            }
        }
    }
Пример #2
0
    public void GenerateInit()
    {
        Patchs patchs = new Patchs();

        patchs.OuterPatch = new GameObject("OuterPatch", typeof(MeshFilter), typeof(MeshRenderer));
        patchs.InnerPatch = new GameObject("InnerPatch", typeof(MeshFilter), typeof(MeshRenderer));
        MeshManager.Instance.PatchList.Add(patchs);
        patchVerticesIntervalValue = 3.0f;
        //patchWeight = UIManager.Instance.curveBar.value * 20f * MeshManager.Instance.pivotTransform.lossyScale.z;

        _patchVertexPosition = Vector3.zero;
        _patchVertices       = new List <Vector3>();
        _insidePatchVertices = new List <Vector3> [5];
        _patchIndex          = MeshManager.Instance.PatchList.Count - 1;
        //MeshManager.Instance.PatchList[_patchIndex].name = "Patch";

        for (int i = 0; i < 5; i++)
        {
            _insidePatchVertices[i] = new List <Vector3>();
        }
    }