HybridCLR 最佳实践,老项目集成热更(战棋项目)

文本介绍了老项目使用HybridCLR 集成热更的过程
从项目结构调整,代码调整,打包,热更测试,跑完HybridCLR所有流程
视频讲解稿

HybridCLR 项目集成C#热更完整流程-unity3d

先看效果(安卓)
源码及资料领取方式私信:领取资料:HybridCLR战棋热更源码
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

文本介绍了老项目集成HybridCLR ,目的:实现C#代码热更
从项目结构调整,代码写法差异,打包工程,热更部署,讲解HybridCLR全流程

采用战棋框架作为讲解素材
因为它包含了商业游戏的常见业务,比如(战斗,技能,AI,UI,资源管理,A星寻路系统等常用功能)

项目功能越复杂,集成的过程更有参考意义

了解AOT和热更代码

根据需求变化频率业务可分为2个部分
变化频率低的通用业务
变化频率高的游戏业务

(热更代码)游戏玩法逻辑,所属目录(HotUpdate)
战斗,技能,UI,AI,流程控制。

(AOT代码无需热更)通用模块,所属目录(ThirdParty)
资源管理和更新(JAssetBundleMgr)
负责资源的对比更新,下载,断点续传。资源加载,资源加密

A星寻路库(AStarPathFinding)
负责游戏路径的计算(移动路径,技能范围计算等)
对象池管理库(PathologicalGames)

基本可以认为这些模块是不会改动的,是稳定的
也可以理解为HybridCLR提及的AOT代码

在这里插入图片描述

资源更新对比实现,需要放在AOT
在这里插入图片描述

项目工程结构
在这里插入图片描述

入口

文件对比更新完毕后的回调,在这里加载热更代码的dll文件
之前用的是ILRUNTIME,这个版本使用hybridclr
原有的热更代码作为保留参考和对比

在这里插入图片描述
在这里插入图片描述

由Enrty.Start(),添加游戏组件GameRoot,由它初始化游戏
(在官方demo里多加了一行代码完成游戏吃初始化)
在这里插入图片描述

部分代码差异

集成了hybridCLR之后改后改回unity3d内置的API写法

>订阅开始按钮点击事件

部分代码差异->部分代码差异

在这里插入图片描述

设置预制体脚本
支持挂载组件
在这里插入图片描述

集成中遇到哪些问题处理的时间花了比较长?

第三方插件,比如,A*插件
因为第三方插件不需要热更,所以放在了AOT
因为热更代码是不能包含编辑器代码的
所以要分离Editor和运行时的代码
打包代码得到错误
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

热更代码丢失AOT引用

在这里插入图片描述

在这里插入图片描述

热更程序集缺少引用,因为项目使用了A*插件,并且划分在了AOT程序内,所以热更程序集需要声明引用了第三方的程序集
在这里插入图片描述
热更程序集引用三方类库
在这里插入图片描述

打包

代码打包
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

资源打包(资源打包和设计方案详见第二季内容)在这里插入图片描述

在这里插入图片描述
得到完整资源(代码资源,素材资源,文件清单表)
在这里插入图片描述

在这里插入图片描述

打包APK即可

热更流程

填写资源服IP

在这里插入图片描述
方式一键热更部署方式
在这里插入图片描述

方式二:按如下方式操作
修改代码,生成热更dll
在这里插入图片描述
覆盖版本库里的文件
在这里插入图片描述
在这里插入图片描述
拷贝到资源服务器即可

一键部署热更原理:
在这里插入图片描述

演示热更视频

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程之力

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值