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
在这里插入图片描述
覆盖版本库里的文件
在这里插入图片描述
在这里插入图片描述
拷贝到资源服务器即可

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

演示热更视频

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
### 回答1: Unity战棋游戏源码是一个用Unity引擎制作的战棋类游戏的程序代码。战棋游戏是一种策略类游戏,玩家可以控制虚拟角色在棋盘上进行战斗和策略决策。 该源码可能包含以下功能: 1. 战斗系统:具备基本的攻击、防御和回合制战斗机制。玩家可以选择不同的角色,每个角色都有独特的技能和属性。在回合制中,玩家可以选择移动、攻击或使用技能来消灭敌人。 2. 地图编辑器:玩家可以使用地图编辑器创建自己的游戏地图。地图编辑器允许玩家在创建地形、放置建筑物和障碍物等方面进行自定义。 3. 单人模式和多人模式:玩家可以选择单人模式与电脑对战,也可以选择多人模式与其他玩家进行实时对战。 4. AI系统:游戏可能会包含一个AI系统,使电脑角色能够自动进行决策和行动。AI系统可能根据玩家的行为和游戏规则来进行智能决策。 5. 游戏进度和存档:游戏可能有一个进度和存档系统,玩家可以保存和加载游戏进度,以便在需要时继续游戏。 总的来说,Unity战棋游戏源码提供了一个基础的战棋游戏框架,玩家可以通过自定义和扩展代码来创建自己的战棋游戏。这个源码可以帮助开发者学习和理解战棋游戏的设计和实现,为他们创作属于自己的战棋游戏提供了有力的支持。 ### 回答2: Unity战棋游戏源码是一种可以用于构建战棋类游戏的程序代码。Unity是一款非常流行的游戏引擎,它提供了强大的开发工具和功能,可以帮助开发者快速构建高质量的游戏。战棋游戏是一种策略类型的游戏,玩家根据自己的决策和策略来战胜敌对玩家或者电脑AI。 在Unity战棋游戏源码中,通常包含了游戏的主要逻辑,如游戏角色的移动、攻击、技能、状态转换等。此外,还会涵盖游戏场景的构建、动画和特效的制作、战斗系统的设计等方面。 使用Unity战棋游戏源码,开发者可以节省大量的开发时间和精力。源码提供了一个已经搭建好的框架和基础代码,使得开发者可以专注于游戏的核心玩法和美术资源的制作。同时,开发者可以根据自己的需求对源码进行修改和定制,以便创建出自己独特的战棋游戏。 总之,Unity战棋游戏源码是一种开发工具,可以帮助开发者快速构建战棋类游戏。它提供了一个已经搭建好的框架和基础代码,使开发者可以专注于游戏的核心玩法和美术资源的制作,为玩家带来高质量的游戏体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

编程之力

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

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

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

打赏作者

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

抵扣说明:

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

余额充值