找回密码
 立即注册
查看: 456|回复: 4

LuaFramework升级笔记

[复制链接]
发表于 2021-12-15 09:03 | 显示全部楼层 |阅读模式
目前在开发一款MOBA类射击游戏, 为了热更我们使用LuaFramework。除了战斗逻辑的逻辑写在Lua里,Lua,UI,导表,行为树等都使用了热更,和王者荣耀类似。一开始使用了SimpleFramework,但是SimpleFramework已经不进行维护了,新的lua框架更合理高效一些也刚好要支持64位就抽空升级了一下。因为对源码做了一些修改,所以有会有一些调整,这里是一些笔记和备忘。


  • Plugin目录下单独建了一个目录放Lua的dll
  • 升级了LuaEncode目录,升级了Lua库
  • LuaFramework把Editor Examples Lua
         ToLua迁移到了LuaFramework目录
  • Scripts改名为LuaScripts
  • 这些dll需要指定平台



  • 网络下的LuaNetCoroutine里面的LuaCoroutine和新版本的重名,并且编译不过要修改SimpleFramework
  • D:\WorkS\MGame\mgame\Program\trunk\Client\Assets\Scripts\LuaScripts\Utility
  • 这个目录下的很多文件改了,并且自定义了一些
string
sourceDir = AppConst.FrameworkRoot + "/ToLua/Source/Generate/";
string
sourceDir = AppConst.LuaWrapPath;

  • LuaClient里少了定义
UNITY_5_5
using
UnityEngine.SceneManagement;
然后改了之后还需要自动升级到5.5代码

  • msgobj里面用了ByteBuffer,但是这个被人改成了在MobaNet下面了,新的是LuaFramework
  • PanelManager.cs需要升级
  • MobaGame.Framework.Message重名了
  • 新加了MGameUtils不和Lua的混在一起,一些全局变量读常量表
  • 替换音效管理器StartUpCommand里加AppFacade.Instance.AddManager<SoundManager>(ManagerName.Muisc);
  • AppConst.cs有比较大的修改
  • ResourceManager有大幅修改,支持热更
  • GameManager有大幅修改
  • ResManager.Initialize();去掉了
  • LuaBehaviour.cs大幅修改,增加了自己UI管理器
  • D:\WorkS\MGame\mgame\Program\trunk\Client\Assets\Scripts\LuaFramework\Editor\Packager.cs大幅修改
  • ToLuaMenu.AutoGen();增加自动生成的功能。
  • 默认的Lua文件保存位置
"D:/WorkS/MGame/mgame/Program/trunk/Client/Assets/com.Lilith.MOBA3/ToLua/Source/Generate/"

  • ToLuaMenu下的beCheck这个是用来控制是否自动检测wrap目录没有文件,如果没有文件自动生成
  • AppConst下的FrameworkRoot是Framwork的根目录,D:/WorkS/MGame/mgame/Program/trunk/Client/Assets/com.Lilith.MOBA3修改为D:/WorkS/MGame/mgame/Program/trunk/Client/Assets/Scripts/LuaFramework
  • AppView下的输出都干掉了
  • GameManager大幅修改
  • LuaLoader.cs大幅修改,这里必须要改因为涉及到读取方式
  • LuaManager的InitLuaBundle修改,因为加载问题
  • D:\WorkS\MGame\mgame\Program\trunk\Client\Assets\LuaFramework\Lua\Common
define修改很多自己的接口

  • D:\WorkS\MGame\mgame\Program\trunk\Client\Assets\LuaFramework\Lua\Controller
全部覆盖

  • GameManager改到Game
  • CustomSetting里面添加很多Mgame的导出宏
  • Lua的协议目录
D:\WorkS\MGame\mgame\Program\trunk\Client\Assets\LuaFramework\Lua
protobuf.lua

  • D:\WorkS\MGame\mgame\ProgrConfigMgr.luaam\trunk\Client\Assets\LuaFramework\Lua\Base我加的用来读表的ConfigMgr.lua
  • D:\WorkS\MGame\mgame\Program\trunk\Client\Assets\LuaFramework\Lua\Logic
  • CtrlManager有修改
  • GeniusGtrl的278行list
  • list的是count改为Count
  • 字典的是[]改为get_Item
  • D:\WorkS\MGame\mgame\Program\trunk\Client\Assets\Scripts\LuaScripts\Network\ByteBuffer.cs 增加LuaByteBuffer等几个接口
  • 一些路径修改
Util.DataPath
"D:/WorkS/MGame/mgame/Program/trunk/Client/Assets/StreamingAssets/"
Application.streamingAssetsPath
"D:/WorkS/MGame/mgame/Program/trunk/Client/Assets/StreamingAssets/"
"D:/WorkS/MGame/mgame/Program/trunk/Client/Assets/LuaTemp/"

  • Package路径改回来
  • D:\WorkS\MGame\mgame\Program\trunk\Client\Assets\Scripts\LuaScripts\Controller\Command\StartUpCommand.cs这个也改了不少,否则report起不来

PS:就性能来说Lua的性能还是不错的,开销比较高的往往是C#到Lua层的开销。我们游戏射速和战斗激烈程度比王者荣耀还有高出很多倍,因此战斗部分还是更追求性能和效率放到C#层,所有系统UI逻辑等放到Lua里支持热更。当时还跑了一下性能对比:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2021-12-15 09:10 | 显示全部楼层
不是tps吗
发表于 2021-12-15 09:15 | 显示全部楼层
更像moba
发表于 2021-12-15 09:21 | 显示全部楼层
很好,现在刚接触unity研发,受益匪浅
发表于 2021-12-15 09:29 | 显示全部楼层
同使用luaframework
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2025-5-14 22:12 , Processed in 0.437506 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表