| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> Unity发布Android App Bundle详解(二)Play Asset Delivery -> 正文阅读 |
|
[游戏开发]Unity发布Android App Bundle详解(二)Play Asset Delivery |
Play Asset Delivery是什么?Play Asset Delivery (PAD) 将 app bundle 的优势带到游戏中。它允许超过 150 MB 的游戏替换旧版扩展文件 (OBB),方法是将包含游戏所需的所有资源的单个工件发布到 Play。PAD 提供了灵活的分发模式、自动更新、压缩和增量修补功能,并且可免费使用。使用 PAD,所有资源包均在 Google Play 上托管和提供,因此您无需使用内容分发网络 (CDN) 向玩家提供游戏资源。 Play Asset Delivery 使用资源包,资源包由资源(如纹理、着色器和声音)组成,但不包含可执行代码。通过 Dynamic Delivery,您可以按照以下三种分发模式自定义如何以及何时将各个资源包下载到设备上:安装时分发、快速跟进式分发和按需分发。 如果您希望直接跳至在游戏中实现 PAD,请参阅后续步骤。 有什么用?上面是官方详细介绍:https://developer.android.com/guide/app-bundle/asset-delivery 看不懂的我给翻译下。 意思是要上线到GooglePlay的游戏包体只能150M以下,那游戏动不动都超过150M了,怎么办呢?所以谷歌给了个方案,超过150M的开发商就要自己分包,分包做过手游的玩家很熟悉了吧,先下载一个很小的包体,再通过热更新啥的把资源下载下来解压缩。这就是谷歌的方案,超的资源你就拆分子包,我给你CDN你传到我后台,并且提供接口给你取到资源,取到了你爱怎么处理怎么处理。也不需要占用你自己的服务器费用,显得很良心吧。。(对玩家友好但是对开发商很不友好)。 但是呢,多的资源部分也不是让你随便爱多大就多大的,也是有限制的。 下载大小上限Asset Pack 因具有较高的大小上限而成为大型游戏的理想之选:
如果您使用的是纹理压缩格式定位,那么这些下载限制会分别应用于每个独一无二的纹理格式。
分发模式介绍?上面摘要了官方的介绍,我白话翻译下。 install-time:玩家下载直接包含在包体里。也就是你本来游戏有1G,拆分了150M+850M。玩家下载的就是1G大小,游戏运行直接能拿到资源了,但是要把资源加载到内存中才能访问到。 fast-follow:玩家下载基础包体后就可以直接点开应用,后台会自动下载。但是你访问资源的时候需要判断是否加载完成。 on-demand:玩家下载运行后,不会自动下载,而是代码访问资源的时候再进行下载,此时会返回加载进度啥的。 上面三种方式各有用途,有热更新经验的同学应该很容易理解。 Unity集成Play Asset Delivery对于游戏项目已经使用AssetBundle的同学,集成过程是非常简单的,这部分可以查看官方教程。 https://developer.android.com/guide/app-bundle/asset-delivery/build-unity https://developer.android.com/guide/playcore/asset-delivery/integrate-unity https://developer.android.com/codelabs/unity-gamepad#0 大概步骤就是,打包的AssetBundle使用谷歌提供的插件窗口配置下,会生成配置,然后使用插件提供的命令进行打包即可打包出.aab文件。 注意:.aab文件包含包本体和资源包,本质上就是一个zip压缩包,所以可以用压缩软件打开确认文件是否打包正确。 正确的结构应该如下: 测试测试比较麻烦,因为谷歌会根据设备自动分发资源,所以需要把.aab上传到后台。 后台的分发内容会写你当前上传的包体包含的资源。 以及下载的时候应该是这样,显示install-time设置的包体,如果是150M以下说明不对的。 项目没有考虑好热更新的游戏怎么办?对于项目之初没有考虑AssetBundle热更新的项目怎么办呢? 项目都是采用Resources加载,并且是同步加载的,unity场景资源也较多,没有做好分包设计的怎么办呢? 后续文章我会继续讲怎么处理。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/28 11:46:07- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |