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

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十幺卜入

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值