位置: 编程技术 - 正文

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

  • 企业的罚款支出包括违约金吗
  • 补缴以前年度附加税怎么做账
  • 公司租赁个人车辆税率是多少
  • 一般纳税人开具的普票可以抵扣吗
  • 抄报未反写影响开票吗
  • 先出货后开票
  • 个人所得税差额20%政策
  • 离境退税政策文件
  • 建筑行业简易计税账务处理
  • 会计核算的具体流程
  • 质押费用计入什么科目
  • 成品油购进数据未同步怎么办
  • 营改增后加工行业的税率是多少?
  • 固定资产清单申报是什么意思
  • 自产自销产品如何入库存
  • 2020国家生育津贴多少钱
  • 有产权车位转让需要什么手续和费用
  • 母公司子公司之间担保
  • 研发人员工资加计扣除
  • 上月没交社保本人能交吗
  • 电脑管家怎么检测
  • 腾讯电脑管家中如何安装 文件夹上锁专家
  • 收到承兑汇票会计分录
  • 应收票据冲转是什么科目
  • 12315投诉饿了吗有用吗
  • macos连接wifi无法上网
  • 无形资产的摊销方法
  • php socket编程
  • 午夜太阳的意思
  • 编制合并报表的母子公司是什么主体
  • 按适用税率计税销售额与应税货物销售额不一致
  • php文档系统
  • vue前端模板网站
  • python中列表清空
  • 借入长期借款的利息
  • 飞机票电子发票能报销吗
  • 差旅费过路费会计分录
  • java中file的用法
  • java泛型的定义和使用
  • mysql使用ssl连接
  • mongodb主从复制原理
  • python 熵值法
  • 坏账计提方法会计政策
  • 汇算清缴调增都有哪些项目
  • SQLServer 2008 CDC功能实现数据变更捕获脚本
  • 公司优秀党员奖章
  • 应付劳务费怎么做账
  • 库存现金的账务处理流程
  • 结转产品成本怎么算
  • 企业接受股东划入资产的处理
  • 预付账款科目的余额如果在借方,则在资产负债表上
  • 个体工商户必须建账吗
  • 请问在哪里可以买到震楼器
  • 多种工具安装系统怎么用
  • win8关闭开机启动项
  • windows8文件夹怎么加密
  • win8系统怎么设置自动关机
  • win8怎么安装不了win10
  • 如何删除win7系统
  • windows 8 1
  • win10开始菜单什么样子
  • node.js批量添加数据
  • android4.4w
  • android中使用md5后报非法延续字节
  • 用android做一个简单的软件
  • Androidannotation使用之@Rest获取资源及用户登录验证(一)
  • jquery和css的区别
  • 网吧保存区连接怎么设置
  • python中用input()函数接收到的数据为
  • angular 图片懒加载
  • unity更新需要重新下载吗
  • angularjs常用总结
  • shell命令for
  • js 原型方法
  • 对税务领导的批示怎么写
  • 12366国税网上申报
  • 姓名章加不加印字
  • 郑州国税发票查询系统
  • 税务筹划收费标准最新
  • 中央财经大学法学院
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设