位置: 编程技术 - 正文

unity3d在线更新资源(4)(unity 更新)

编辑:rootadmin

推荐整理分享unity3d在线更新资源(4)(unity 更新),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:unity 更新,unity3d怎么更新,如何更新unity hub,unity3d怎么更新,unity3d怎么更新,unity3d怎么更新,unity更新下载文件,unity3d怎么更新,内容如对您有帮助,希望把文章链接给更多的朋友!

unity3d在线更新资源(4)(unity 更新)

经过一天的尝试,终于确认方案可行,主要代码如下:

using UnityEngine;using System.IO;using System.Threading;using SevenZip;using Awesome.Net.Compression;using System.Collections;using System.Collections.Generic;public class VersionCheckControl:MonoBehaviour{ ProgressBar bar; string[] path; string dic; UILabel progress; UILabel checkVersionLabel; Dictionary<string, bool> compressDic = new Dictionary<string, bool>(); void Awake() { bar = transform.Find ("Progress2").GetComponent<ProgressBar> (); progress = bar.transform.Find ("Label").GetComponent<UILabel> (); UILabel label = bar.transform.Find ("Tip").GetComponent<UILabel> (); label.text = Localization.Get (""); checkVersionLabel = transform.Find ("CheckVersionLabel").GetComponent<UILabel> (); checkVersionLabel.text = Localization.Get (""); bar.gameObject.SetActive (false); } void Start() { StartCoroutine (downLoadVersionFile ()); } string serverVersion; string localPath; string assetVersionStr; string localAssetPath; List<string> needDownList = new List<string>(); IEnumerator downLoadVersionFile() { WWW versionWWW = new WWW (PlatformConfig.ServerVersionPath() &#; "Version"); yield return versionWWW; if(versionWWW.error != null) { Debug.Log(versionWWW.error); checkVersionLabel.text = Localization.Get (""); } else { serverVersion = StringUtil.removeHuiChe(versionWWW.text); localPath = Application.persistentDataPath &#; "/Version"; if(File.Exists(localPath)) { string localVersion = File.ReadAllText(localPath); if(localVersion == serverVersion) { checkVersionLabel.gameObject.SetActive(false); startConnect(); } else { StartCoroutine(DownLoadAssetVersionFile()); } } else { StartCoroutine(DownLoadAssetVersionFile()); } } } IEnumerator DownLoadAssetVersionFile() { WWW assetVersion = new WWW(PlatformConfig.ServerVersionPath() &#; "AssetVersion"); yield return assetVersion; if(assetVersion.error != null) { File.WriteAllText(localPath, serverVersion); checkVersionLabel.gameObject.SetActive(false); startConnect(); } else { assetVersionStr = StringUtil.removeHuiChe(assetVersion.text); localAssetPath = Application.persistentDataPath &#; "/AssetVersion"; Dictionary<string, int> localAsset = new Dictionary<string, int>(); if(File.Exists(localAssetPath)) { string localAssetStr = File.ReadAllText(localAssetPath); string[] localAssetArr = localAssetStr.Split('|'); for(int i = 0; i < localAssetArr.Length; i&#;&#;) { string[] arr = localAssetArr[i].Split('-'); localAsset.Add(arr[0], int.Parse(arr[1])); } } string[] serverAssetArr = assetVersionStr.Split('|'); for(int i = 0; i < serverAssetArr.Length; i&#;&#;) { string[] arr = serverAssetArr[i].Split('-'); string key = arr[0]; int serverAssetVersion = int.Parse(arr[1]); if(!localAsset.ContainsKey(key) || localAsset[key] < serverAssetVersion) { needDownList.Add(key); } } StartCoroutine(DownLoadBundleFile()); } } WWW bundle; int index = 0; bool isAllDone = false; IEnumerator DownLoadBundleFile() { checkVersionLabel.gameObject.SetActive (false); if(needDownList.Count <= 0) { File.WriteAllText(localPath, serverVersion); startConnect(); } else { bar.gameObject.SetActive(true); for(int i = 0; i < needDownList.Count; i&#;&#;) { bundle = new WWW(PlatformConfig.ServerVersionPath() &#; needDownList[i] &#; ".assetBundle"); yield return bundle; if(bundle.error != null) { Debug.Log(bundle.error); } else { File.WriteAllBytes(PlatformConfig.PathOfArchive() &#; needDownList[i] &#; ".assetBundle", bundle.bytes); } index&#;&#;; } File.WriteAllText(localAssetPath, assetVersionStr); File.WriteAllText(localPath, serverVersion); isAllDone = true; } } void Update() { if(bar.gameObject.activeSelf) { bar.setValue (bundle.progress / needDownList.Count &#; index / needDownList.Count, true); progress.text = Mathf.CeilToInt(bar.getValue() * ).ToString() &#; "%"; if(isAllDone && bar.getValue() >= 1f) { startConnect(); isAllDone = false; } } } void startConnect() { bar.gameObject.SetActive (false); ResManager.getInst ().preLoadBundle (); LoginAction action = GetComponent<LoginAction>(); action.startConnect(); } }整体思路还是很简单的,就是先把流程走通。我也觉得目前的方案应该是最好的选择。

[置顶] Unity3D中自带事件函数的执行顺序 在Unity3D脚本中,有几个Unity3D自带的事件函数按照预定的顺序执行作为脚本执行。其执行顺序如下:编辑器(Editor)Reset:Reset函数被调用来初始化脚本

Unity3d中调用webservice方法 在此之前非常感谢一位博客主的博客,是这位仁兄帮我找到了思路:

u3d在线更新资源方案 现附上雨松大神的文章:

标签: unity 更新

本文链接地址:https://www.jiuchutong.com/biancheng/378735.html 转载请保留说明!

上一篇:Unity3d MonoDevelop格式化代码

下一篇:[置顶] Unity3D中自带事件函数的执行顺序([置顶]电影名字《收件人不详》)

  • 税控盘注意事项
  • 公司注销所有者权益账面怎么处理
  • 企业股东分红怎么交税
  • 银行开出的发票可以进行税抵扣吗
  • 海外工作薪资比国内高多少
  • 固定资产报废电脑
  • 旅游服务住宿费入什么科目
  • 自然人税收管理系统换了电脑怎么恢复数据
  • 工业企业员工工资占收入比例
  • 出口企业免抵税额在增值税申报表填写附表5
  • 消费税在流通环节征税吗
  • 可供出售债权投资
  • 固定资产机械设备
  • 银行给企业的存款怎么存
  • 发票专用章管理办法
  • 绿化工程企业所得税减免吗
  • 出口退税申报显示疑点跳过可以转正式申报吗
  • 个人借款给公司借条怎么写
  • 政府收购企业资产规定
  • 企业可以采用在产品按固定成本计算法的有
  • 生产性生物资产计提折旧的方法
  • 管理不善造成的损失的会计分录
  • 增值税应税劳务的纳税人是什么意思
  • 腾讯电脑管家中蓝牙在哪
  • 给员工买饮料
  • 会计分录是怎么写的
  • 银行承兑汇票和银行汇票的区别
  • 如何解决连接宽带的方法
  • 押金未退会计分录
  • 绿萝 用什么土
  • windows未能正常启动
  • 在web页面中如果出现html语句
  • 无损数据分区
  • 贵的u盘和便宜的有什么区别
  • 出借和出租包装物的区别
  • 应收账款应付账款属于什么科目
  • yolov5s
  • javascript对象有哪些
  • react-router6.4+的项目种路由实现方式(列举两种)
  • smb命令执行
  • 计提支付公积金
  • 桥闸通行费发票上注明的金额含税吗
  • 为什么交水利建设基金
  • 赔绿化损失费的法律规定
  • 工程施工与工程结算对冲分录
  • 企业所得税的纳税调整项和比例
  • 商品流通企业的种类
  • 利润分配转作股本的股利属于什么科目
  • 暂存款账务处理
  • 文件柜质量标准
  • 电脑入账如何做凭证
  • 什么是库存现金限额?为什么要核定库存现金限额
  • 小规模纳税人减按1%政策
  • 工程设备租赁有哪些
  • 纳税人在工作
  • 企业所得税汇算清缴调增的项目有哪些
  • 总分公司如何承担责任
  • 货款扣除质量赔款
  • 收入纳税明细里的收入和实际不符
  • 小规模收的专票以后能抵扣吗
  • 普通发票如何作废操作流程
  • 会计里面权益是什么
  • mysql配置文件优化详解
  • window怎么操作
  • win8.1 开机进桌面
  • 下载windows vista
  • open bsd
  • Ubuntu GNOME 14.10的桌面升级到GNOME 3.16教程
  • 怎么知道游戏是什么引擎
  • youphone.exe是什么
  • 在linux系统中查看文件的内容命令
  • JavaScript_ECMA5数组新特性详解
  • 黑马程序员学费多少钱2022
  • javascript怎么学
  • js中遍历数组的方法
  • Python Sql数据库增删改查操作简单封装
  • 电子税务局怎么删除办税员
  • 宣城市有什么好玩的景区
  • 国家税务总局2016年17号公告
  • 国家税务系统
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设