Unity3d C#实现打包自动更新软件版本号且UGUI同步显示功能

前言

如题的功能可以实现免去每次打包得手动更新版本号的痛点,只需要正常进行打包流程即可实现版本号的自动升级。

效果

效果如图:
在这里插入图片描述

思路

我们假定软件中版本号按“Ver.yyyy/MM/dd-01”格式进行升级,Ver.为固定的显示文字,yyyy/MM/dd是版本发布的日期(日期版本号),-01是数字版本号(同一天的多次打包会依次+1)。每次打包前先对该版本号进行解析,如果是同一日期则升级数字版本号,不然会更新日期版本号。更新完日期直接设置在bundleVersion。程序运行时显示版本号的Text进行读取并展示。
流程图:

在这里插入图片描述

实现

我们新建一个空工程,利用UnityEditor.Build;和UnityEditor.Build.Reporting;中的打包前接口OnPreprocessBuild实现版本号自动升级功能。作者的功能在== Unity3d 2020。3.12f1c1==实现。

搭建UI

测试场景只需要用的Text:
在这里插入图片描述

版本号自动升级

该功能就是在OnPreprocessBuild函数中升级版本号。:

   string GetVerNum(string str)
   {
    
    
       if (!string.IsNullOrEmpty(str))
       {
    
    
           string[] arr = str.Split('-');
           if (arr.Length > 1 && "Ver."+DateTime.Now.ToString(VerDateFm) == arr[0])
           {
    
    
               int num;
               if (int.TryParse(arr[1], out num))
                   return "Ver." + DateTime.Now.ToString(VerDateFm) + "-" +
                       (((num + 1)<10)?(num + 1).ToString("D2"): (num + 1).ToString());
           }
       }
       return "Ver." + DateTime.Now.ToString(VerDateFm) + "-01";
   }

其中VerDateFm 是日期的格式(“yyyy/MM/dd”)。

同步版本号

 vertext.text = Application.version;

vertext就是显示版本号的Text。

打包&运行

打包三次的截图:
在这里插入图片描述

三次的数字版号跟着升级了

第三次运行图:
在这里插入图片描述

第三次版本号为:Ver.2022/02/16-03

猜你喜欢

转载自blog.csdn.net/qq_33789001/article/details/122962159
今日推荐