Unity热更新介绍
打包函数
BuildPipeline.BuildAssetBundles("AssetBundles", BuildAssetBundleOptions.ChunkBasedCompression, BuildTarget.Android);
打包策略和方案
- 按文件夹打包:Bundle数量少,首次下载块,但是后期更新补丁大
- 按文件打包:Bundle数量多,首次下载较慢,更新补丁小
- 整包:完整更新资源放在项目中,下载时间长,首次更新少
- 分包:大部分热更资源放在服务器上,进入游戏后下载到热更目录,安装包下,但是首次更新下载时间久。
简述热更新
热更新原理
Unity 游戏热更新包含两个方面,一个是资源的更新,一个是脚本的更新。
Unity 提供可以热更的方案就是 AssetsBundle(后面简称 AB)。资源、代码都可以打成 AB 包,放到服务器上,然后比对版本,进行热更。Unity3D 的热更新会涉及 3 个目录:游戏资源目录、数据目录、网络资源地址。
游戏资源目录:游戏的安装目录,如下所示:
Mac OS 或 Windows:Application.dataPath + “/StreamingAssets”;
IOS:Application.dataPath + “/Raw”;
Android: jar:file://" + Application.dataPath + “!/assets/”
数据目录:由于“游戏资源目录”在 Android 和 IOS 上是只读的,不能把网上的下载的资源放到里面,所以需要建立一个“数据目录”,该目录可读可写。不同平台下,“数据目录”的地址也不同,LuaFramework 的定义如下:
Android 或 IOS:Application.persistentDataPath + “/LuaFramework”
Mac OS 或 Windows:C:/LuaFramework/
调试模式下:Application.dataPath + "/StreamingAssets/
网络资源地址:又名服务器地址,是用来存放游戏资源的网址
热更步骤如下:
- 第一次开启游戏后,程序将“游戏资源目录”的内容复制到“数据目录”中。(这个步骤只会执行一次,下次再打开游戏就不复制了)。
- 游戏开启后,程序会从“网络资源地址”下载一些更新的文件到数据目录。
- 游戏过程中的资源加载,都是从“数据目录”中获取解包。
热更新流程
热更的基本流程分为两部分:
导出热更资源
(1) 打包热更资源的对应的 md5 信息(涉及到增量打包)
(2) 上传热更 ab 到热更服务器
(3) 上传版本信息到版本服务器
游戏流程热更
(1) 启动游戏
(2) 根据当前版本号,和平台号去版本服务器上检查是否有热更
(3) 从热更服务器上下载 MD5 文件,比对需要热更的具体文件列表
(4) 从热更服务器上下载需要热更的资源,解压到热更资源目录
(5) 游戏运行加载资源,优先到热更目录中加载,再到母包资源目录加载
更新注意:
(1) 要有下载失败重试几次机制
(2) 要进行超时检测
(3) 要记录更新日志,例如哪个资源导致了整个更新流程失败
版本号管理
客户端版本号是 4 位来标识,假设是 X.Y.Z.W
X:【巨大版本号】这一位其实就是 1,没事一般不会动他,除非有太巨大的变化
Y:【整包更新版本号】:我们游戏一般一个月会有一个比较大的版本迭代,这种版本会走商店,每次提交 Y 值+1;
Z:【服务器协议版本号】,一个月度版本周期内,万一 SDK 有问题或者 C#层有发现 bug,需要更新商店,这一位会+1,这里单独留一个 Z 处理这种商店版本号,是因为不想影响 Y 值,而商店提交新包要求版本号必须有增加,buildNum 也是商店要求必须要升的;
W:【编译版本号\热更版本号】,每次热更都+1 。
【第 2 位加 1 之后,3、4 位全部清 0】
相关文章:
Unity热更新介绍
打包函数 BuildPipeline.BuildAssetBundles("AssetBundles", BuildAssetBundleOptions.ChunkBasedCompression, BuildTarget.Android);打包策略和方案 按文件夹打包:Bundle数量少,首次下载块,但是后期更新补丁大按文件打包&#…...
在虚拟机centos7中部署docker+jenkins最新稳定版
在虚拟机centos7中部署dockerjenkins最新稳定版 查看端口是否被占用 lsof -i:80 查看运行中容器 docker ps 查看所有容器 docker ps -a 删除容器 docker rm 镜像/容器名称 强制删除 docker rmi -f 镜像名 查看当前目录 pwd 查看当前目录下所有文件名称 ls 赋予权限 chown 777 …...
nodejs express vue 点餐外卖系统源码
开发环境及工具: nodejs,vscode(webstorm),大于mysql5.5 技术说明: nodejs express vue elementui 功能介绍: 用户端: 登录注册 首页显示搜索菜品,轮播图…...
微信小程序导入js使用时候报错
我是引入weapp库时候,导入js会报错。 需要在小程序开发工具里面配置 就可以了。...
相机存储卡被格式化了怎么恢复?数据恢复办法分享!
随着时代的发展,相机被越来越多的用户所使用,这也意味着更多的用户面临着相机数据丢失的问题,很多用户在使用相机的过程中,都出现过不小心格式化相机存储卡的情况,里面的数据也将一并消失,相机存储卡被格式…...
Firefox修改缓存目录的方法
打开Firefox,在地址栏输入“about:config” 查找是否有 browser.cache.disk.parent_directory,如果没有就新建一个同名的字符串,然后修改值为你要存放Firefox浏览器缓存的目录地址(E:\FirefoxCacheFiles) 然后重新…...
maven子模块无法导入jar包问题
明明本地仓库有jar包 maven子模块无法导入jar包,然后放到父项目的pom.xml则可以导入 可以试试更新仓库后,引入成功...
ardupilot开发 --- 代码解析 篇
0. 前言 根据SITL的断点调试和自己阅读代码的一些理解,写一点自己的注释,有什么不恰当的地方请各位读者不吝赐教。 1. GCS::update_send 线程 主动向MavLink system发送消息包。 1.1 不断向地面站发送飞机状态数据 msg_attitude: msg_location: n…...
C++引用概述
变量名实质上是一段连续存储空间的别名,是一个标号(门牌号),程序中通过变量来申请并命 名内存空间,通过变量的名字可以使用存储空间。引用是 C中新增加的概念,引用可以看作 一个已定义变量的别名。 引用的语法: Type&…...
精准努力,提升自己的核心竞争力——中国人民大学与加拿大女王大学金融硕士
步入职场,相信大家都想成为职场的宠儿。经过一番摸爬滚打后,在职场稳固了地位。但想叱咤职场,还需要精准努力,提升自己的核心竞争力。中国人民大学与加拿大女王大学金融硕士项目为你补给能量。 任何资产都有贬值的风险࿰…...
string【C++】
string 是什么 string 是什么 长度可变的字符串。...
【Python爬虫】selenium4新版本使用指南
Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera&am…...
CCF_A 计算机视觉顶会CVPR2024投稿指南以及论文模板
目录 CVPR2024官网: CVPR2024投稿链接: CVPR2024 重要时间节点: CVPR2024投稿模板: WORD: LATEX : CVPR2024_AuthorGuidelines CVPR2024投稿Topics: CVPR2024官网: https://cvpr.thecvf.com/Conferences/2024CV…...
什么是鉴权?一篇文章带你了解postman的多种方式
一、什么是鉴权? 鉴权也就是身份认证,就是验证您是否有权限从服务器访问或操作相关数据。发送请求时,通常必须包含相应的检验参数以确保请求具有访问权限并返回所需数据。通俗的讲就是一个门禁,您想要进入室内,必须通…...
go 语言介绍
背景 一直有在零散的时间用go写点代码,正好借着最近比较有时间写东西的契机,给这个看着年轻,实际也已经发展10几年,并在当下众多开发领域都有不可忽视作用的语言做个介绍吧 golang 的起点 golang 的诞生可以说是时代造就了它&a…...
查询平均提速 700%,奇安信基于 Apache Doris 升级日志安全分析系统
本文导读: 数智时代的到来使网络安全成为了不可忽视的重要领域。奇安信作为一家领先的网络安全解决方案领军者,致力于为企业提供先进全面的网络安全保护,其日志分析系统在网络安全中发挥着关键作用,通过对运行日志数据的深入分析…...
Linux越学越头疼,我要怎么办?
最近,听到一些同学说,“Linux越学越头疼”。其实这句话,在我之前刚接触Linux的时候,也是深有感触。Linux越学越不明所以。最后干脆放弃学习,转而学习其他东西。 其实大家在初学Linux的时候, 有这个感受&am…...
使用Fiddler进行Mock测试
1、接口抓包 找到要mock的接口,打开fiddler抓包 以某某接口为例,找到下面的接口 http://XXX/SYSTEMS 2、复制该接口数据到本地 在接口上进行右键点击,选择save -> …and Open as Local File -> 默认会保存至桌面,示例中的数…...
js字符串支持多个分隔符分割
js字符串支持多个分隔符分割 场景代码 场景 用户输入内容后,支持多个分隔符(比如:中英文逗号,分号以及换号)对字符串进行分割,之后提交给后台同学解析。 代码 function splitString(inputString, separat…...
ajax-axios发送 get请求 或者 发送post请求带有请求体参数
/* axios v0.21.1 | (c) 2020 by Matt Zabriskie */ !function(e,t){"object"typeof exports&&"object"typeof module?module.exportst():"function"typeof define&&define.amd?define([],t):"object"typeof export…...
【51单片机通过矩阵键盘控制led灯显示二进制码】2023-12-5
缘由51单片机通过矩阵键盘控制led灯显示二进制码_编程语言-CSDN问答 #include "reg52.h" unsigned char code SmZiFu[]{63,6,91,79,102,109,125,7,127,111,128,0};//共阴0-9. unsigned char code ShaoMiaoZhi[]{238,237,235,231,222,221,219,215,190,189,187,183,12…...
明日方舟智能基建管理:Arknights-Mower 完整指南与实战应用
明日方舟智能基建管理:Arknights-Mower 完整指南与实战应用 【免费下载链接】arknights-mower 《明日方舟》长草助手 项目地址: https://gitcode.com/gh_mirrors/ar/arknights-mower 还在为《明日方舟》基建管理的繁琐操作而烦恼吗?每天重复的干员…...
B站视频下载终极方案:DownKyi全功能解析与高效使用指南
B站视频下载终极方案:DownKyi全功能解析与高效使用指南 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水印等&…...
VSCode PDF预览器技术实现深度解析:基于PDF.js的编辑器集成架构
VSCode PDF预览器技术实现深度解析:基于PDF.js的编辑器集成架构 【免费下载链接】vscode-pdfviewer Show PDF preview in VSCode. 项目地址: https://gitcode.com/gh_mirrors/vs/vscode-pdfviewer 在Visual Studio Code生态系统中,PDF文档预览功能…...
肺部X光AI诊断系统:五分类模型实战与临床可解释性
1. 项目概述:当X光片遇上深度学习——一个肺部疾病AI诊断系统的实操手记 我做医疗影像AI项目快七年了,从最早在医院信息科帮放射科老师写脚本批量重命名DICOM文件,到后来带着学生团队在基层医院部署轻量级肺炎筛查工具,踩过的坑比…...
跳出传统 RAG!用 LLM Wiki 构建闭环式产品 Agent 协作体系
这段时间我在了解 LLM Wiki 之后,把它当成一套「私域知识库 Agent 工作流」的底座,做了一次具体实践。这篇文章主要想记录我对 LLM Wiki 的理解,以及我怎么基于这套思路去构建一个产品 Agent:知识库如何组织,产品工作…...
无人超市|基于Java+vue的无人超市管理系统(源码+数据库+文档)
无人超市管理系统 基于SprinBootvue的无人超市管理系统 一、前言 二、系统设计 三、系统功能设计 系统功能实现 后台管理员模块实现 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍:✌️大厂…...
在 Clean Core 约束下扩展 SAP S/4HANA 标准 OData API
我们正在做的事情很具体,S/4HANA 后端已经能够发布产品主数据相关的 Enterprise Event,事件经过 Integration Suite、Event Mesh、Advanced Event Mesh,再进入 Kafka Event Broker,消费系统按照 product type 订阅不同的 material event。链路跑通以后,业务方很快发现一个…...
论文写到头秃?书匠策AI这套“毕业论文急救包“我劝你现在就存好!
同学们,我做论文写作科普这么久,后台私信最多的一句话就是:"老师,我论文一个字都没动,还有救吗?" 有。今天就给你们安利一个我最近实测了一圈、觉得确实有点东西的工具——书匠策AI(…...
中兴光猫工厂模式智能解锁:3步获得完全控制权限
中兴光猫工厂模式智能解锁:3步获得完全控制权限 【免费下载链接】zteOnu A tool that can open ZTE onu device factory mode 项目地址: https://gitcode.com/gh_mirrors/zt/zteOnu 你是否曾因中兴光猫的限制而无法进行高级网络配置?是否在需要深…...
