项目简介
演示Lua脚本在更加复杂项目中扮演的角色,以及UnLua相关功能和工具链的使用。
注:对于零基础的UE萌新来说,这个示例项目还是有些过于复杂了,可以先从UnLua自带的示例入手。
如何开始
开发环境
工程准备
- 为
Lyra.uproject
生成工程文件 - 使用 VS 或者 Rider 打开
Lyra.sln
- 选择
DebugGame Editor
配置来启动UE编辑器 - 使用 VSCode 打开
Lyra.code-workspace
注:如果不需要C++相关的调试,可以直接双击 Lyra.uproject
打开游戏工程
不出意外的话,此时你已经可以在编辑器中点击运行游戏来体验Lyra游戏了。
智能提示
- 在引擎主界面的工具栏中找到UnLua图标,在下拉菜单中选择生成智能提示
- 第一次全量生成比较慢,后续蓝图有变动,会自动更新,不需要再次手动生成
- 生成成功后的文件可以在VSCode的工作区中的
IntelliSense
目录下找到
调试Lua脚本
- 在 VSCode 中启动任意Lua调试器,等待连接
- 运行游戏,在
Main.lua
中就会主动连接本地调试器,默认端口8818 - 在 Lua 代码中加断点就可以命中了
注:如果你的调试器支持Attach模式,可以直接F5附加到游戏进程上
调试Lua源码
- 使用
DebugGame Editor
配置来启动游戏工程 - 在任意C++调用Lua相关API的代码处加断点,等待命中
- 在调试面板中展开变量
L
( lua_State* ),可以直接观察到Lua栈上的数据类型 - 可以将
lua54.natvis
复制到你自己的工程,重新生成工程文件来达到同样的调试效果
打包项目
在工具栏中找到 平台
,在下拉菜单中选择需要打包的平台即可。
注:Android平台打包需要配置好相关开发环境,参考官方文档。
演示内容
- VSCode工程结构
- 自定义启动入口脚本
- 自定义ModuleLocator的使用
- 自定义加载器的使用
- UMG相关的覆写
- 反射对象的覆写
- 非反射对象静态导出
- 智能提示的生成与使用
- 调试Lua脚本代码
- 调试Lua源码
- 工程打包
- 热更新
关于 Lyra Starter Game
这是在虚幻引擎5中提供的游戏玩法示例项目,也是用来演示有关UE5开发的最新最佳实践,相关文档可以在这里找到。
代码贡献
原则上不修改、不扩展Lyra原有的游戏玩法,尽量使用Lua绑定覆写的方式来完成。
交流
官方交流QQ群:936285107
更推荐使用讨论功能,无论是在UnLua功能上的疑问或者Lyra架构设计方面的灵感都欢迎讨论,沉淀知识到社区也是一种开源贡献。