位置: 编程技术 - 正文

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中自带事件函数的执行顺序([置顶]电影名字《收件人不详》)

  • 山东税务网上申报平台操作员查询
  • 财产行为税包括资源税吗
  • 某项目全部投资资金的40%由银行贷款
  • 工会经费2019年新政策
  • 统借统还资金管理办法
  • 跨年发票是否可以报销 审计
  • 非税收入包括哪些项目行政事业性收费
  • 投资性房地产计量模式的转换
  • 微信提现手续费最新规定
  • 筹资活动现金净流量为正说明什么
  • 住房补贴是现金还是转账
  • 营销活动的意义是什么
  • 企业会计准则制度
  • 以前年度未分配利润属于什么科目
  • 薪酬支出包括什么
  • 电脑换系统怎么备份软件
  • 老毛桃u盘启动盘制作工具怎么安装win10系统 老毛桃u盘安装win10系统图文教程
  • 什么是会计科目?为什么要设置会计科目?
  • 鸿蒙3.0手机适配名单荣耀
  • linux系统中配置网卡ip地址的命令为
  • 异常发票怎么处理
  • 报关代理费是什么
  • 股东向公司借款协议书范本
  • 企业收到款项
  • 一般纳税人购进税控收款机抵扣
  • php图片大小设置
  • php封包
  • php如何实现mysql数据的删除
  • 固定资产清理科目余额结转哪里
  • 治疗孩子咳嗽小秘方,超实用
  • 太原市插画工作室
  • php图片上传代码详解
  • uniapp示例
  • 子公司提取盈余公积 合并抵消
  • javaweb重点知识总结
  • 命令启动服务管理
  • 外贸出口退税进项发票有多家供应商怎么匹配
  • web开发百度百科
  • 借调是原单位发工资吗
  • 跨月的凭证出错如何处理
  • 资本化费用为什么会减少
  • 盘盈盘亏怎么填写
  • 不动产出租要交什么税
  • 进项税额转出在电子税务局怎么操作
  • 递延资产放在资产负债表哪里
  • 跨年后发票作废
  • 年终奖个税计税方式
  • 将现金存入银行编制什么凭证
  • 余利宝收益如何算
  • 一个工程项目多个业主吗
  • 分公司办事处需要什么手续
  • 自营工程领用自产产品的处理
  • 行政拨付工会经费可以用于职工福利发放吗
  • 第二个季度
  • 报关单填制的运费怎么算
  • sql外连接
  • 低配置装什么系统
  • centos sh
  • 64位VMware虚拟机系统打不开怎么办?
  • 操作系统与硬件之间的关系
  • linux find . -name命令
  • win7桌面提示7601
  • win7自带防火墙关闭后自己打开啥原因
  • 怎么清空windows8电脑里全部东西
  • 如何设置win10用户名
  • cocoscreator lua
  • 常见的错误方法
  • 单线程语言有哪些
  • linux shell脚本命令
  • js 函数执行顺序
  • 你必须知道的最新婚姻法
  • socketio视频教程
  • jquery节点操作
  • 瀑布流软件
  • Unity3d C# Socket 下载文件 (同步向)
  • js-cookie vue
  • javascriptcom
  • 物流企业需要缴税吗
  • 企业所得税报错了税款扣了可以改吗
  • 广东共青团如何解绑微信
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设