Unity 热更 之 【YooAsset 热更】Unity 可以进行热更的资源管理系统,并 【Android 端简单实现·案例热更】

server/2024/9/23 10:39:45/

YooAsset%20%E7%83%AD%E6%9B%B4%E3%80%91Unity%20%E5%8F%AF%E4%BB%A5%E8%BF%9B%E8%A1%8C%E7%83%AD%E6%9B%B4%E7%9A%84%E8%B5%84%E6%BA%90%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F%EF%BC%8C%E5%B9%B6%20%E3%80%90Android%20%E7%AB%AF%E7%AE%80%E5%8D%95%E5%AE%9E%E7%8E%B0%C2%B7%E6%A1%88%E4%BE%8B%E7%83%AD%E6%9B%B4%E3%80%91">Unity 热更 之 【YooAsset 热更】Unity 可以进行热更的资源管理系统,并 【Android 端简单实现·案例热更

目录

YooAsset%20%E7%83%AD%E6%9B%B4%E3%80%91Unity%20%E5%8F%AF%E4%BB%A5%E8%BF%9B%E8%A1%8C%E7%83%AD%E6%9B%B4%E7%9A%84%E8%B5%84%E6%BA%90%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F%EF%BC%8C%E5%B9%B6%20%E3%80%90Android%20%E7%AB%AF%E7%AE%80%E5%8D%95%E5%AE%9E%E7%8E%B0%C2%B7%E6%A1%88%E4%BE%8B%E7%83%AD%E6%9B%B4%E3%80%91-toc" style="margin-left:0px;">Unity 热更 之 【YooAsset 热更】Unity 可以进行热更的资源管理系统,并 【Android 端简单实现·案例热更

一、简单介绍

YooAsset%C2%A0%20%E5%BC%95%E5%85%A5%E5%B7%A5%E7%A8%8B-toc" style="margin-left:40px;">二、YooAsset  引入工程

Android%20%E7%AB%AF%20%E7%83%AD%E6%9B%B4-toc" style="margin-left:40px;">三、Sample 案例 Android热更

四、Python  服务器 简单构建


一、简单介绍

Unity 的资源管理系统不断发展,以适应不同项目的需求和解决特定的问题。AssetBundle 和 Addressable Asset System 是 Unity 官方提供的资源管理解决方案,而 YooAsset 是第三方提供的资源管理系统。尽管 AssetBundle 和 Addressable 已经提供了强大的功能,但开发者可能会选择 YooAsset 基于以下理由:

  1. 简化的API和易用性

    YooAsset 可能提供了更简单直观的 API,使得资源加载和管理更加容易。对于不熟悉 Addressable 或 AssetBundle 复杂配置的开发者来说,YooAsset 可能是一个更易于上手的选择。
  2. 性能优化

    YooAsset 可能在某些方面进行了特定的性能优化,比如资源加载速度、内存管理或多线程处理,这些优化可能在特定项目中提供了更好的性能表现。
  3. 定制化和灵活性

    每个项目的需求都是独特的,YooAsset 可能提供了更多的定制选项,允许开发者根据项目的具体需求进行调整和优化。

YooAsset 是一个为 Unity 设计的资源管理系统,它在资源热更新方面具有一些特定的技术优势:

  1. 简化的资源管理YooAsset 提供了简单而强大的 API,使得资源的加载和管理更加容易,无需深入了解 Unity 的 AssetBundle 或 Addressable 的复杂配置。

  2. 高效的加载机制YooAsset 支持异步加载资源,这意味着资源可以在后台加载,不会阻塞主线程,从而提高游戏性能。

  3. 资源缓存系统YooAsset 提供了资源缓存系统,用于管理已加载的资源,避免重复加载,提高加载效率。

  4. 热更新支持YooAsset 支持资源热更新,允许开发者在不重启游戏的情况下更新资源,这对于需要频繁更新内容的游戏尤为重要。

  5. 资源版本控制YooAsset 允许获取和更新资源包的版本,确保玩家总是使用最新版本的资源。

  6. 资源包下载YooAsset 提供了资源包下载功能,可以根据需要下载全部或部分资源,支持设置下载的最大并发数、失败重试次数和超时时间。

  7. 下载器合并YooAsset 允许将同一个 package 下的多个下载器合并,简化下载流程。

  8. Shader 变体收集YooAsset 提供了 Shader 变体收集功能,帮助开发者更好地管理和优化 Shader 变体,提高游戏的渲染效率和性能。

  9. 灵活的构建选项YooAsset 支持不同的构建模式和加密选项,可以根据项目需求进行定制。

  10. 跨平台支持YooAsset 支持所有主流的游戏引擎和平台,包括 Unity、Unreal、Cocos2x、Godot、微信小游戏等。

  11. 热更新方案的兼容性YooAsset 支持所有主流的热更新方案,如 HybridCLR、ILRuntime、xLua、tLua、sLua、puerts 等。

  12. 详细的文档和社区支持YooAsset 有详细的文档和活跃的社区,为开发者提供了丰富的学习资源和技术支持。

这些优势使得 YooAsset 成为 Unity 资源热更新的一个有力工具,尤其适合需要高效资源管理和灵活更新策略的项目。开发者可以根据自己的项目需求和偏好选择合适的资源管理工具。

YooAsset 官网:https://www.yooasset.com/docs/Introduce

案例运行环境:

  • Win 10
  • Yoo Asset 2.2.4-preview
  • python 本地服务器

YooAsset%C2%A0%20%E5%BC%95%E5%85%A5%E5%B7%A5%E7%A8%8B">二、YooAsset  引入工程

1、打开Unity ,新建一个空工程

2、在菜单栏,找到 Edit-Project Settings... ,点击打开

3、在 Project Settings 找到 Package Manager ,选中它,添加YooAsset 相关信息

(国际版)
Name: package.openupm.com
URL: https://package.openupm.com
Scope(s): com.tuyoogame.yooasset

对应填入上面的信息,save ,会简单运行,没有报错即可

(中国版)
Name: package.openupm.cn
URL: https://package.openupm.cn
Scope(s): com.tuyoogame.yooasset
(之前有个中国版配置,不过这个配置好像会报错了,请先试用上面国际版的地址)

4、在菜单栏找到,Window-Package Manager

5、在 Package Manager 界面,找到 Packages: My Registers,选择它,就可以看到刚才配置 YooAsset ,点击 Install 安装即可

6、这里把 Sample 中的 Space Shooter 导入进来,作为后面热更效果的例子使用

Android%20%E7%AB%AF%20%E7%83%AD%E6%9B%B4">三、Sample 案例 Android热更

1、把平台切换成 Android 平台,添加案例的启动场景

2、在菜单栏中找到,YooAsset-AssetBundle Collertor,打开它

3、会发现 AssetBundle Collector 中的好多的报 None ,这时,可以点击右上角的 Fix 进行修复,最后 Save 一下就好

4、选择案例的 Boot 场景,运行场景,就可以正常运行了

5、把Boot 场景中的 Boot 游戏物体上的 Boot 的脚本的 Play Mode 修改为 Host Play Mode ,保存场景

6、运行 Boot 场景,报错如下

 

7、在菜单栏上找到,YooAsset-AssetBundle Builder ,打开它,然后 Click Build

8、编译成功后,在对应路径找到对应生成

9、根据报错,在 工程中新建文件夹 StreamingAssets/yoo/DefaultPackage,然后把,生成的文件夹拷贝进去

这里 PackageManifest_DefaultPackage.version、PackageManifest_DefaultPackage_2024-09-06-637.bytes ,拷贝进去就好

10、工程中找到脚本 FsmInitializePackage,修改 服务器地址

因为真机上运行,所以本地服务器 和真机接入同一个网络,所以这里根据你们实际情况修改即可

(可以使用 ipconfig 查看)

11、这里把应用打包成 apk ,就下来在真机上运行测试

12、构建一个本地服务器,用来测试服务器热更资源

其中,把之前 AssetBundle Builder 生成的资源,2024-09-06-637的资源全部拷贝

在服务器根目录,创建文件夹 CND/Android/v1.0,把上面的资源拷贝到 v1.0 文件夹下

13、运行,结果如下

(注意本地服务器 和真机接入同一个网络)

14、这里修改工程的玩家飞机,飞机放大原来的 3 倍

15、重新 AssetBundle Builder  构建 热更数据

16、把生成的 2024-09-06-686 文件下的资源,全部覆盖之前本地服务器 CND/Android/v1.0 文件夹下的资源

17、重新运行真机的 apk ,会发现更新包比之前小了,且飞机比之前大了

18、到此,YooAsset 基本的热更效果演示完毕

四、Python  服务器 简单构建

1、在 python 官网下载 python
寻找需要的版本下载即可

python 官网:Download Python | Python.org

2、双击安装即可,注意添加路径到 PATH 环境中


3、创建一个文件夹,作为本地服务器根文件夹


4、进入本地服务器根文件夹下,按住 shift + 鼠标右键,在此处打开 Powershell 窗口


5、输入 python -m http.server 7070,启动 7070 端口作为服务器端口
其中 端口 7070 根据需要设定即可


6、在本地服务器根文件下创建一个 index.html,里面的内容是 This Home Page



7、在浏览器上输入 127.0.0.1:7070 ,效果如下
说明本地服务器,启动成功


8、在 cmd 中输入 ipconfig 可以查看本机的局域网地址


9、以其中一个作为本地服务器IP地址,输入 192.168.1.120:7070 也是可以访问的,效果如下

10、至此,Python 简单的本地服务器搭建完成


http://www.ppmy.cn/server/113143.html

相关文章

KRTS网络模块:UDP通信

KRTS网络模块:UDP通信 目录 KRTS网络模块:UDP通信UDP简介KRST UDP简介核心特性界面设计 核心代码运行实例稳定性测试 UDP简介 UDP(User Datagram Protocol,用户数据报协议)是一种无连接的传输层协议,它位于OSI七层模型中的传输层…

LTE PSS主同步信号搜索 MATLAB实现

本期带来PSS相关检测说明和MATLAB实现,本期只讲相关方面的,所以MATLAB实现也是相关的部分,频偏估计方面的待下期开讲。 LTE 4G PSS搜索分为TDD搜索和FDD搜索,但是对于 TDD 和 FDD 而言,PSS同步信号的结构是完全一样的&…

【前端面试】leetcode指针解法javascript

最大盛水 https://leetcode.cn/problems/container-with-most-water/ var maxArea = function(height) {// 左右指针靠拢let left = 0;let right = height.length-1;let maxArea = 0; while(left<right){// 计算出 当前的容积 与最大容积比较,取出最大的const currentAre…

数据结构————栈、队列

系统栈与数据结构中的栈 数据结构的栈系统栈定义与性质特殊的线性表&#xff0c;后进先出操作系统空间中的一块区域&#xff0c;用于保存中断现场、调用参数等操作入栈&#xff08;push&#xff09;、出栈&#xff08;pop&#xff09;、查看栈顶&#xff08;top&#xff09;由…

06_React ajax

React ajax 一、理解1、前置说明2、常用的 ajax 请求库浏览器插件推荐 二、axios1、跨域实际上是请求发出了&#xff0c;但是没有接收到数据。使用代理服务器进行解决2、React 脚手架配置代理2.1 前端项目在 package.json 中的文件添加配置&#xff0c;可以解决跨域2.2 方式二2…

Node.js发票识别接口助力企业实现发票的精准高效管理

在金融和会计领域&#xff0c;随着数字化进程的加速&#xff0c;大量的纸质发票处理已经成为了企业效率提升的一个瓶颈。发票文字识别接口的出现&#xff0c;被视为解决这一问题的关键技术创新。通过高精度的图像识别与机器学习技术&#xff0c;将繁琐的手动输入工作转化为自动…

谷歌计划在越南设立首个美国科技数据中心

据一位知情人士透露&#xff0c;Alphabet 子公司谷歌正在考虑在越南建立一个大型数据中心。 如果实现&#xff0c;这将标志着美国科技巨头在东南亚国家首次进行此类大规模投资。 据一位匿名人士透露&#xff0c;谷歌正在评估在越南南部经济中心胡志明市附近建立一个“超大规模…

关于HTTP通讯流程知识点补充—常见状态码及常见请求方式

1、常见的 HTTP 响应状态码 在一个HTTP请求的响应报文中的状态行会有一个响应状态码这个状态码是用来描述本次响应的状态的 ●通常会出现五种状态码&#xff1a; 100 ~ 199200 ~ 299300 ~ 399400 ~ 499500 ~ 599 2、100 ~ 199——请求准备状态 一般我们看不到&#xff0c;因为…