Exemple #1
0
    public static void Init()
    {
        VersionObj version = Resources.Load <VersionObj>("RawConfig/Version");

        if (version == null)
        {
            DebugConsole.LogError("Can't Load Version Object!");
            open = false;
            return;
        }

        open = version.Open_Version;

        if (open)
        {
            Main_Version_Number = version.Main_Version_Number;
            DebugConsole.Log("程序主版本号为:" + Main_Version_Number, DebugConsole.Color.blue);
            DebugConsole.Log("本地主版本号为:" + GetLocalMainVersionNum(), DebugConsole.Color.blue);
            Asset_Version_Number = version.Asset_Version_Number;
            DebugConsole.Log("程序资源版本号为:" + Asset_Version_Number, DebugConsole.Color.blue);
            DebugConsole.Log("本地资源版本号为:" + GetLocalAssetVersionNum(), DebugConsole.Color.blue);
        }
        else
        {
            DebugConsole.Log("未开启程序版本号控制");
        }
    }
Exemple #2
0
    //计算Bundle md5值
    static void CalculateBundleIdentify(string assetbudleBuildPath)
    {
        long         totalFileLength = 0;
        StreamWriter sw = new StreamWriter(File.Open(assetbudleBuildPath + "/" + PUBLIC_PATH_DEFINE.BundlesIdentityListName, FileMode.CreateNew));

        string version = "-1";
        //设置资源版本号
        VersionObj obj = AssetDatabase.LoadAssetAtPath <VersionObj>("Assets/Resources/RawConfig/Version.asset");

        if (obj != null && obj.Open_Version)
        {
            version = obj.Asset_Version_Number;
        }

        //创建并保存成Xml
        XmlDocument xml  = new XmlDocument();
        XmlElement  root = xml.CreateElement("BundleIdentity");

        root.SetAttribute("version", version);

        string[] files = Directory.GetFiles(assetbudleBuildPath);

        foreach (var file in files)
        {
            if (!file.Contains(".meta") &&
                !file.Contains(".manifest") &&
                !file.Contains("BundlesIdentityList") /*不计算自身*/)
            {
                string     md5        = "";
                FileStream fs         = File.Open(file, FileMode.Open);
                long       fileLength = fs.Length;
                totalFileLength += fileLength;       //计算文件总长度

                using (fs)
                {
                    md5 = CalculateFileMD5(fs);          //计算md5值
                }

                string fileName = Path.GetFileName(file);
                //sw.WriteLine(fileName + ":" + md5);
                XmlElement id = xml.CreateElement(fileName);
                id.InnerText = md5;
                id.SetAttribute("Length", fileLength.ToString());//记录单个文件长度
                DebugConsole.Log("已计算AssetBundle(" + fileName + ")长度为" + ((float)fileLength / 1024) + "KB,\r\nMD5 = " + md5);
                root.AppendChild(id);
            }
        }

        root.SetAttribute("TotalLength", totalFileLength.ToString());
        DebugConsole.Log("已计算AssetBundle资源总长度为" + ((float)totalFileLength / 1024) + "KB");
        xml.AppendChild(root);
        xml.Save(sw);
        sw.Flush();
        sw.Dispose();
    }
Exemple #3
0
    /// <summary>
    /// 获取版本号文件
    /// </summary>
    /// <returns></returns>
    public static VersionObj GetVersionObj()
    {
        VersionObj obj = AssetDatabase.LoadAssetAtPath <VersionObj>(rawConfigPath + "Version.asset");

        if (obj == null)
        {
            obj = ScriptableObject.CreateInstance <VersionObj>();
            if (!Directory.Exists(rawConfigPath))
            {
                Directory.CreateDirectory(rawConfigPath);
            }

            AssetDatabase.CreateAsset(obj, rawConfigPath + "Version.asset");
            AssetDatabase.Refresh();
        }

        return(obj);
    }
Exemple #4
0
    private void OnGUI()
    {
        #region  场景设置

        GUILayout.Space(10);
        GUILayout.BeginVertical();
        GUILayout.Label("设置打包场景:", "capsulebutton");
        GUILayout.Space(10);

        int enableIndex = 0;
        for (int i = 0; i < scenes.Length; i++)
        {
            int curIndex = i; //保存当前索引

            GUILayout.BeginHorizontal();
            scenes[i].enabled = GUILayout.Toggle(scenes[i].enabled, "");
            GUILayout.Label(scenes[i].path, (GUIStyle)"sv_label_2");
            GUILayout.FlexibleSpace();
            if (scenes[i].enabled)
            {
                if (GUILayout.Button("", (GUIStyle)"Grad Up Swatch"))
                {
                    SwitchBuildSceneOrder(curIndex, curIndex - 1);
                }
                //scene id
                GUILayout.Label(enableIndex.ToString());
                enableIndex++;

                if (GUILayout.Button("", (GUIStyle)"Grad Down Swatch"))
                {
                    SwitchBuildSceneOrder(curIndex, curIndex + 1);
                }
            }
            GUILayout.EndHorizontal();
        }

        //GUILayout.Space(10);
        //GUILayout.Label("", "capsulebutton");
        GUILayout.EndVertical();

        #endregion

        #region 版本号设置

        VersionObj version = BuildTool.GetVersionObj();
        GUILayout.Space(10);
        GUILayout.BeginVertical();
        GUILayout.Label("版本号设置:", "capsulebutton");
        GUILayout.Space(10);

        version.Open_Version = GUILayout.Toggle(version.Open_Version, "开启版本号控制:");

        if (version.Open_Version)
        {
            GUILayout.BeginHorizontal();
            GUILayout.Label("主版本号", (GUIStyle)"ChannelStripAttenuationBar");
            GUILayout.FlexibleSpace();
            version.Main_Version_Number = GUILayout.TextField(version.Main_Version_Number);
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("资源版本号", (GUIStyle)"ChannelStripAttenuationBar");
            GUILayout.FlexibleSpace();
            version.Asset_Version_Number = GUILayout.TextField(version.Asset_Version_Number);
            GUILayout.EndHorizontal();
        }

        GUILayout.Space(10);
        GUILayout.Label("", "capsulebutton");
        GUILayout.EndVertical();
        #endregion

        GUILayout.Space(10);

        if (GUILayout.Button("打包项目"))
        {
            SaveBuildScenes();
            BuildTool.BuildPackage();
            this.Close();
        }
        if (GUILayout.Button("关闭窗口"))
        {
            this.Close();
        }
    }