[游戏开发][Unity]Assetbundle下载篇(7)获取运行时(边玩边下)下载列表

这篇具有很好参考价值的文章主要介绍了[游戏开发][Unity]Assetbundle下载篇(7)获取运行时(边玩边下)下载列表。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

打包与资源加载框架目录

正文

啥是运行时下载清单?现在大多数手游都会有一个边玩边下功能,会提示用户是否开启下载,要XXX流量,如果你下载完了,可能还会有奖励。

 

疑问:为何要有边玩边下功能?

解答:为了发包的包体小,并且是越小越好!

我们的游戏想要赚钱,第一步就是让用户下载你的游戏,其次才是考虑留存的问题。

如果你的首包就是10个G,用户直接就开骂了,想让老子下载10G的包,你得多大面子。

首包到底该多大,多少需要热更,多少需要游戏内下载是个玄学问题,没有标准答案。

我认为首包的资源起码应该保证新玩家能玩个一两天不需要下载的量。

也有的公司够粗暴,首包只有框架,资源和业务代码全部热更。

除了提示用户下载,不知道有没有公司会不提示偷偷下载,或者检测如果是WIFI状态下,偷偷下载,如果不提示就让用户浪费了流量,可能涉嫌违法。


AB包如何区分是启动时热更还是边玩变下?

我把第一篇文章的内容以及AB包清单粘贴过来,

第一行是SVN版本号

第二行是AB包数量

从第三行开始是资源包信息,以=号分割开有效数据,分别是

MD5.unity3d = 资源路径 = 资源路径的HashId = 包体KB大小 = SVN版本号 = 启动热更模式

上面说的热更启动模式就是专门用来做这个的标记,我们项目中buildin代表启动时热更,InGame代表边玩边下。

[游戏开发][Unity]Assetbundle下载篇(7)获取运行时(边玩边下)下载列表

 下面是收集边玩边下列表的代码,代码比较简单,就是判断下载列表的每一行,如果Tag标记是InGame,那么就加入边玩边下列表。文章来源地址https://www.toymoban.com/news/detail-477465.html

private void GetDownloadList(PatchManifest target)
{
    string style = PatchHelper.GetPackStyle();
    MotionLog.Log(ELogLevel.Log, $"getDownloadList style is {style}");
    if (style == PATCH_STYLE.INGAME && _patcher.DownloadInGame)
    {
    _patcher.InGameDownloadList.Clear();

        // 临时下载列表
		List<PatchElement> downloadList = new List<PatchElement>(1000);

		// 准备下载列表
		foreach (var pair in target.Elements)
		{
			PatchElement element = pair.Value;
			if (element.Tag == PATCH_STYLE.INGAME)
			{
				downloadList.Add(element);
				// yield return 0;
				}
			}

		// 如果下载列表为空
		MotionLog.Log(ELogLevel.Log, $"FsmGetInGameDownloadList count is {downloadList.Count}");
		if (downloadList.Count > 0)
		{
			// 最后添加到正式下载列表里
			_patcher.InGameDownloadList.AddRange(downloadList);
			downloadList.Clear();

			// 发现新更新文件后,挂起流程系统
			_patcher.inGameCnt = _patcher.InGameDownloadList.Count;
			_patcher.inGameSizeKB = 0;
			foreach (var element in _patcher.InGameDownloadList)
			{
				_patcher.inGameSizeKB += element.SizeKB;
				// yield return 0;
			}

			// PatchEventDispatcher.SendFoundUpdateFilesMsg(totalDownloadCount, totalDownloadSizeKB);
		}
	}

	_patcher.SwitchNext();
}

到了这里,关于[游戏开发][Unity]Assetbundle下载篇(7)获取运行时(边玩边下)下载列表的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [游戏开发][Unity]Assetbundle打包篇(1)打包流程介绍

    打包与资源加载框架目录 先捋一下打AB包的整体思路,首先,Unity4.6版本之后就使用了全新的打包接口 无论是全新打包还是增量打包都是使用这个API,所以一切的一切,都要围绕这个API开始讲起。 该API有四个参数 string outputPath AssetBundleBuild[] builds BuildAssetBundleOptions assetBundle

    2024年02月10日
    浏览(30)
  • [游戏开发][Unity]Assetbundle打包篇(2)打包资源配置篇

    打包与资源加载框架目录 可视化配置的方式有很多种,Json、XML、以及Unity内置的ScriptableObject序列化 配置文件里要有哪些内容呢,很显然,最重要的就是目标文件路径,其次是权重类型,权重类型有:必要打包型、被引用打包型、忽略类型。为何会有忽略类型呢,是因为我们

    2024年02月09日
    浏览(30)
  • [游戏开发][Unity]Assetbundle打包篇(5)使用Manifest二次构建资源索引

    打包与资源加载框架目录 正文开始前,先把打包代码放过来,请注意,前面的代码已省略,自己去对比前面的文章。本篇文章从第一次执行打包代码开始。 第一次调用BuildPipeline.BuildAssetBundles打包API后(详见代码第七行),会返回AssetBundleManifest的引用, 【疑问】: BuildPipe

    2024年02月03日
    浏览(26)
  • Unity边玩边下限制下载速度技术实现

    Unity提供了DownloadHandlerFile类来进行文件的下载,如果是那种网络比较好的宽带每秒下载速度可以达到20M以上,这样导致IO容易卡住。如果是进游戏前那种提前下载肯定没问题,但是边玩边下这种如果不限制下载速度那么游戏就不会那么流畅了。 Unity提供了DownloadHandlerScript类,

    2024年01月17日
    浏览(21)
  • Unity的AssetBundle资源运行内存管理的再次深入思考

      大家好,我是阿赵。   这篇文章我想写了很久,是关于Unity项目使用AssetBundle加载资源时的内存管理的。这篇文章不会分享代码,只是分享思路,思路不一定正确,欢迎讨论。   对于Unity引擎的资源内存管理,我猜很多朋友都存在一定的疑惑。疑惑的点有非常多,包

    2024年03月22日
    浏览(25)
  • [游戏开发][Unity]出包真机运行花屏(已解决)

    原因是启动项目时的第一个场景没有相机是 Skybox或者SolidColor模式,我的启动场景只有一个UI相机,且Clear Flags是DepthOnly https://blog.csdn.net/yanchezuo/article/details/79002318

    2024年02月11日
    浏览(36)
  • 【游戏提取/超详细记录向】关于unity游戏的资源提取所需资源及方法简介(AssetBundle及libil2cpp.so等解密)

    方法一 :AssetStudio提取(仅针对ab包及.assets、.boundle和.unity3d未加密的情况下) 1.在我们拿到一个游戏的安装包时,首先会疑惑如何打开。下载bandzip Bandizip · Free zip, 7z, unzip, unrar Archiver · Fast and easy ,这是一款非常方便的解压缩工具。安装后右键apk-压缩文件预览,即可打开

    2023年04月15日
    浏览(31)
  • Unity 从服务器加载AssetBundle资源写入本地内存,并将下载保存的AB资源从本地内存加载至场景

    AB资源打包后有一个【目录文件】AssetBundle,他保存了所有AB资源的路径与名称, 通过aLLAssetBundleURL链接路径 组拼 从【目录文件】获得的AB资源的名字,然后再协程方法内编写相关代码,从而实现从服务器加载资源的功能。详细见代码。

    2024年02月13日
    浏览(31)
  • 边玩边学,13个Python小游戏(含源码)

    经常听到有朋友说,学习编程是一件非常枯燥无味的事情。其实,大家有没有认真想过,可能是我们的学习方法不对? 比方说,你有没有想过,可以通过打游戏来学编程? 今天我想跟大家分享几个Python小游戏,教你如何通过边打游戏边学编程! 源码分享:   源码分享:  

    2024年02月07日
    浏览(34)
  • 益智游戏:边玩边学习边成长的全新体验

    在这个数字化时代,游戏已经不再是简单的娱乐方式,而是一种崭新的学习和成长机会。益智游戏正以其独特的魅力,成为越来越多人的追求。这类游戏不仅仅是为了娱乐,更是在娱乐的过程中,边玩边学习,边娱乐边成长。 益智游戏的多样性 益智游戏涵盖了多种类型,包

    2024年02月12日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包