您的位置:首页 > 汽车 > 时评 > 全能搜_国际电商平台有哪些_快链友情链接平台_seo外链推广平台

全能搜_国际电商平台有哪些_快链友情链接平台_seo外链推广平台

2025/1/11 5:46:51 来源:https://blog.csdn.net/qq992817263/article/details/144889016  浏览:    关键词:全能搜_国际电商平台有哪些_快链友情链接平台_seo外链推广平台
全能搜_国际电商平台有哪些_快链友情链接平台_seo外链推广平台

更新日期:2025年1月2日。
Github源码:[点我获取源码]

索引

  • 资源及代码热更新实战演示
  • 运行演示Demo
    • 1.克隆项目工程
    • 2.更新子模块
    • 3.打开项目
    • 4.打开入口场景
    • 5.设置远端资源服务器地址
    • 6.导入HybridCLR
    • 7.初始化HybridCLR
    • 8.发布项目
    • 9.部署资源版本
    • 10.运行Exe
    • 11.升级资源版本
    • 12.文件目录说明

资源及代码热更新实战演示

本文会基于Deployment + HybridCLR的方式实现资源及代码热更新的实战演示,两者的使用方法参考之前的文章:
【Unity】 HTFramework框架(五十四)【进阶篇】Deployment 轻量级资源部署管线。
【Unity】 HTFramework框架(五十二)使用 HybridCLR 热更新。

运行演示Demo

1.克隆项目工程

首先,进入本文开头处的源码链接,Clone项目工程到本地:

在这里插入图片描述

2.更新子模块

因为HTFrameworkDeployment模块均是以子模块形式添加进来的,所以必须更新子模块(也叫做初始化子模块):

在这里插入图片描述

3.打开项目

使用Unity 2022.3.34打开此项目。

4.打开入口场景

在这里插入图片描述

5.设置远端资源服务器地址

也即是设置CDN服务器地址(任意一个可访问的远端文件服务器都可),为了达到演示效果,这一点是必须的:

在这里插入图片描述

6.导入HybridCLR

在这里插入图片描述
导入完成后,在Main检视器面板查看,以确保HybridCLR已正确导入:

在这里插入图片描述

7.初始化HybridCLR

点击菜单HybridCLR - Generate - All,以完成HybridCLR的初始化。

在这里插入图片描述

8.发布项目

将项目发布为可执行程序(目前只演示Window平台,其他平台同理):

在这里插入图片描述

9.部署资源版本

BuildResource/v1.0.0版本(事先构建好的版本)的资源部署到CDN服务器(也即是第5步设置的文件服务器地址),作为初始版本:

在这里插入图片描述

10.运行Exe

我们运行HotfixDemo.exe后,首先会弹出资源热更新面板

在这里插入图片描述

解析:
因为目前远端部署的版本为:v1.0.0
本地版本为:(因为是首次运行程序,还未下载任何资源)。
所以会进入资源热更新流程,将远端部署的最新版本下载到本地并覆盖。

点击确定,更新资源完成后,进入程序首页,可以看到当前的资源版本已升级到v1.0.0

在这里插入图片描述

接下来退出此程序。

11.升级资源版本

BuildResource/v2.0.0版本(事先构建好的版本)的资源部署到CDN服务器(也即是第5步设置的文件服务器地址),覆盖之前的v1.0.0版本:

在这里插入图片描述

v2.0.0版本在代码中修改了登录界面按钮上的文字,之前是登录 v1.0.0,现在是登录 v2.0.0

    /// <summary>/// 登录界面/// </summary>[UIResource("ui", "Assets/Source_Hotfix/Prefabs/LoginPanel.prefab", "LoginPanel")]public class UILogin : UILogicResident{protected override bool IsAutomate => false;/// <summary>/// 初始化/// </summary>public override void OnInit(){base.OnInit();UIEntity.FindChildren("LoginButton").rectTransform().AddEventListener(OnLogin);}public override void OnOpen(params object[] args){base.OnOpen(args);UIEntity.FindChildren("Txt_Version").GetComponent<Text>().text = "当前资源版本:" + DeploymentConfig.Current.LocalVersion.Version;UIEntity.FindChildren("LoginButton/Text").GetComponent<Text>().text = "登录 v2.0.0";}private void OnLogin(){Main.m_Procedure.SwitchProcedure<ChooseProcedure>();}}

我们再次运行HotfixDemo.exe后,依然会弹出资源热更新面板

在这里插入图片描述

解析:
因为目前远端部署的版本为:v2.0.0
本地版本为:v1.0.0(版本不匹配)。
所以会进入资源热更新流程,将远端部署的最新版本下载到本地并覆盖。
注意:之所以下载文件只有一个,因为我们只改动了一个脚本,所有脚本会编译为一个热更程序集,所以只需要下载该热更程序集

点击确定,更新资源完成后,进入程序首页,可以看到当前的资源版本已升级到v2.0.0

在这里插入图片描述

我们没有重新发布可执行程序,那么资源及代码的热更新流程便完成了演示。

当然,如果你想测试自行构建资源版本,按照Deployment的标准操作流程走一遍即可。

注意:预制体等打入AB包的文件没有改动的情况下,不要重新打AB包,代码没有改动的情况下,不要重新生成热更程序集,以保持每个版本最少的下载量。

12.文件目录说明

在这里插入图片描述

AssetBundles:打AB包的输出目录,原则上不用干涉,Deployment构建时会自动提取里面的AB包资源。
BuildResource:资源版本构建的输出目录,里面存放了资源版本构建的所有历史版本,目前预构建了v1.0.0v2.0.0两个版本。

在这里插入图片描述

Source:主程序资源目录,会随主程序构建出去的目录,目前只有一个脚本ResourceUpdater,该脚本负责调用Deployment完成资源更新(详细业务逻辑请参阅源码)。
Source_Hotfix:热更新资源目录,其中的资源会打入AB包,脚本会打入热更程序集,如果他们产生了变化,就意味着资源版本升级了,需根据情况重打AB包,重新生成热更程序集,并在DeploymentConfig面板构建此版本,然后再上传到CDN服务器完成部署。

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com