你知道的越多,你不知道的越多 🇨🇳🇨🇳🇨🇳
点赞再看,养成习惯,别忘了一键三连哦 👍👍👍
文章持续更新中 📝📝📝
1️⃣前言🔥🔥🔥
有需求Lua项目框架的可以扫码咨询
2️⃣项目中引入Xlua框架的时机与作用🔥🔥🔥
新项目,引入Xlua插件,主程指定整体架构Xlua框架,选择对应的技术方案
🚩游戏类型:弱联网(卡牌),强联网(mmo),PVE单机+PVP实时对战(部分强联网部分弱联网),Moba还需要长连接的socket来做
🚩功能划分与Scene场景规划:主场景切换场景,背包装备等功能不需要切换场景,UI类场景,遇到敌人切换到战斗场景
🚩特殊需求:创新点,提供技术支持,现成插件支持
🚩制定模块系统:版本,数据,配置,日志管理系统,C#调用lua的主脚本,主脚本处理lua内模块的功能,简单,符合lua开发方式,复杂问题简单化
中后期项目:建议重构,最快1个月,主程经验越好越多重构越快,热补丁是高风险,大型项目不推荐HotFix
🚩核心数据的Lua存储
🚩配置文件挪到Lua中,C#中是json,xml文件,lua专门写工具,策划excel转换成lua
🚩网络交互使用lua封装和调用
🚩业务功能模块不再绑定C#脚本,全局C#脚本,lua脚本负责业务,lua管理机制
🚩每个UI功能使用lua处理,逻辑脚本,展示脚本,显示数值,图片,按钮,通用的需要架构来处理
🚩战斗等复合功能模块,增加辅助Lua处理
🚩原框架核心功能部分改成Lua来实现,部分打上LUACallC#标签,部分Lua来实现
🚩实现Lua模块之间的通信,订阅发布,松耦合
3️⃣项目框架提供功能🔥🔥🔥
这个简单项目框架提供
-
调用对应的资源,提前加载资源,按需加载,不需要时卸载(按频率),算法机制
-
相关数据来支持你优化功能,综合考虑,不是非一即二
-
框架部分C#与lua相融合
-
资源更新的服务器地址,GameLoading阶段,AssetsList.txt资源列表文件下载,与本地的对应文件进行校验,大版本号是否大于,逐步对比资源包清单文件,大块比较,图片,预制体,配置文件,音乐,字体等,按功能比较,上传时间比较,包含文件类型比较,解压,相应存放,资源包大小比较,发生变化MD5也会变化,做一下检验,需要更新的加入待更新列表,一个一个下载资源包。
-
上传时间、类型、资源包大小、MD5、辅助信息 = 热更新包(需要更新的资源)
每一个资源包有唯一的地址,名字,MD5定位资源包,Unity的WWW下载到本地,资源包Size信息,进度条变化根据资源包下载的Size大小比例。 -
客户端的版本号替换成服务器的版本号
-
下载完成,资源初始化,资源提前加载,资源管理器把资源包加入到内存,不同类型不同容器存储,功能名字,资源名字,方法调用,定位,解包,拿取资源
-
进入游戏,系统内部做了Main游戏对象,整个项目唯一的通过C#与Lua的枢纽,挂了一个C#脚本LuaBehaviour,开启Lua虚拟机,设置前置信息,启动加载目录,完成全部前置操作,启动Main.Lua脚本。
-
require引用模块,必要功能,public公共的功能,自行维护,ui打开关闭,net网络有关,主数据,plugin插件功能,所有头文件引用,tools工具类功能,方便程序员扩展,自行维护,list容器,绝大部分数据容纳,event消息事件接收功能,GameMainData游戏主数据,和业务有关数据,数据结构模型;StaticData静态数据,放配置文件。
-
Lua的配置文件,Lua是脚本,比json和xml优势是IO磁盘功能读取快,加载到内存当中,并提供了加载读取的方法
-
Start方法,通过UI功能打开UI,预制体形式存在
-
update方法,实时更新数据,
-
socketSendMsg方法,长连接,事件进行广播
🎁🌻🌼🌸 粉丝福利来喽 🎁🌻🌼🌸
- 免费领取海量资源 🎁
简历自测评分表、Unity职级技能表、面试题库、入行学习路径等- 《Unity游戏开发五天集训营 》50个名额 🎁
我给大家争取到了 50个《游戏开发五天集训营 》名额,原价198,前50个免费
扫码加入,暗号小听歌
即可参加ARPG狼人战斗系统、饥荒生存类游戏开发、回合制RPG口袋妖怪游戏等游戏开发训练营- 额外抽奖机会🎁
参加游戏训练营、还有机会获得大厂老师在线面试指导、或者有机会获得价值1998元的《Unity极速入门与实战》课程