Skip to content

xuyanghuang-tencent/LyraWithUnLua

Repository files navigation

PRs Welcome

项目简介

演示Lua脚本在更加复杂项目中扮演的角色,以及UnLua相关功能和工具链的使用。

注:对于零基础的UE萌新来说,这个示例项目还是有些过于复杂了,可以先从UnLua自带的示例入手。

如何开始

开发环境

工程准备

  1. Lyra.uproject生成工程文件
  2. 使用 VS 或者 Rider 打开Lyra.sln
  3. 选择 DebugGame Editor 配置来启动UE编辑器
  4. 使用 VSCode 打开 Lyra.code-workspace

注:如果不需要C++相关的调试,可以直接双击 Lyra.uproject 打开游戏工程

不出意外的话,此时你已经可以在编辑器中点击运行游戏来体验Lyra游戏了。

智能提示

  1. 在引擎主界面的工具栏中找到UnLua图标,在下拉菜单中选择生成智能提示
  2. 第一次全量生成比较慢,后续蓝图有变动,会自动更新,不需要再次手动生成
  3. 生成成功后的文件可以在VSCode的工作区中的 IntelliSense 目录下找到

调试Lua脚本

  1. 在 VSCode 中启动任意Lua调试器,等待连接
  2. 运行游戏,在 Main.lua 中就会主动连接本地调试器,默认端口8818
  3. 在 Lua 代码中加断点就可以命中了

注:如果你的调试器支持Attach模式,可以直接F5附加到游戏进程上

调试Lua源码

  1. 使用 DebugGame Editor 配置来启动游戏工程
  2. 在任意C++调用Lua相关API的代码处加断点,等待命中
  3. 在调试面板中展开变量 L ( lua_State* ),可以直接观察到Lua栈上的数据类型
  4. 可以将 lua54.natvis 复制到你自己的工程,重新生成工程文件来达到同样的调试效果

打包项目

在工具栏中找到 平台 ,在下拉菜单中选择需要打包的平台即可。

注:Android平台打包需要配置好相关开发环境,参考官方文档

演示内容

  • VSCode工程结构
  • 自定义启动入口脚本
  • 自定义ModuleLocator的使用
  • 自定义加载器的使用
  • UMG相关的覆写
  • 反射对象的覆写
  • 非反射对象静态导出
  • 智能提示的生成与使用
  • 调试Lua脚本代码
  • 调试Lua源码
  • 工程打包
  • 热更新

关于 Lyra Starter Game

这是在虚幻引擎5中提供的游戏玩法示例项目,也是用来演示有关UE5开发的最新最佳实践,相关文档可以在这里找到。

代码贡献

原则上不修改、不扩展Lyra原有的游戏玩法,尽量使用Lua绑定覆写的方式来完成。

交流

官方交流QQ群:936285107

更推荐使用讨论功能,无论是在UnLua功能上的疑问或者Lyra架构设计方面的灵感都欢迎讨论,沉淀知识到社区也是一种开源贡献。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published