UE4 + UnLua + VSCode + LuaPanda调试

0、写在前面

本次教程,使用的demo为UnLua提供。下载UnLua源码后,解压出来的就是UnLua的demo工程了。

1、下载所需环境

UnLua

下载unlua:unlua仓库

UnLua简述

UnLua是由Tencent提供的,是针对虚幻运行Lua的解决方案。

查看UnLua中的Lua版本

由于后续需要编译LuaSocket,因此在此需要知道UnLua所用的Lua版本是多少。

步骤:

  1. 解压UnLua,打开uproject工程。
  2. 在任意的关卡中,例如:Tutorials/HelloWorld关卡,在Script/Tutorials目录下找到01_HelloWorld.lua,修改脚本如下。
  3. 运行游戏,查看控制台中Lua的版本(非常关键)
require "UnLua"

local Screen = require "Tutorials.Screen"

local M = Class()

-- 所有绑定到Lua的对象初始化时都会调用Initialize的实例方法
function M:Initialize()
    print("unlua version ===> ".._VERSION)
    local msg = [[
    Welcome to zzw Unreal!
    ]]
    print(msg)
    Screen.Print(msg)
end

return M

Lua

  1. 下载Lua环境:Lua下载官网,需要与UnLua版本一致。
  2. 编译Lua的动态库和静态库,此步骤自己搜索教程。

LuaSocket

  1. 下载LuaSocket环境:LuaSocket仓库
  2. 使用刚刚编译过的Lua(要Lua版本和UnLua的版本是一致的)去编译LuaSocket。这里的坑比较多,可能会遇到UnLua版本比较高,而LuaSocket版本较低等一系列的问题。

LuaPanda

  1. 下载LuaPanda代码:LuaPanda仓库
  2. 在VSCode中安装LuaPanda插件。
  3. 将LuaPanda仓库中Debugger/LuaPanda.lua文件拷贝到与demo中的Script/UnLua.lua同级。

插件的launch.json配置如下:

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "lua",
            "request": "launch",
            "tag": "normal",
            "name": "LuaPanda",
            "description": "通用模式,通常调试项目请选择此模式 | launchVer:3.2.0",
            "cwd": "${workspaceFolder}",
            "luaFileExtension": "",
            "connectionPort": 8818,
            "stopOnEntry": false,
            "useCHook": true,
            "autoPathMode": true
        },
        {
            "type": "lua",
            "request": "launch",
            "tag": "independent_file",
            "name": "LuaPanda-IndependentFile",
            "description": "独立文件调试模式,使用前请参考文档",
            "luaPath": "",
            "packagePath": [],
            "luaFileExtension": "",
            "connectionPort": 8820,
            "stopOnEntry": true,
            "useCHook": true
        }
    ]
}

整理

已准备的环境

  1. Lua的静态库和动态库以及头,并且Lua的版本与UnLua版本保持一致。
  2. LuaSocket编译出来的socket文件夹下的core,此socket版本与UnLua版本保持一致。
  3. VSCode已经配置好LuaPanda环境。
  4. UnLua的demo中的LuaPanda.luaUnLua.lua同级。

调试

  1. LuaSocket编译出来的socket文件目录拷贝到一个比较方便的地方,例如:D:/luasocket目录下。
  2. 在需要被调试的lua文件中加入:package.cpath = package.cpath .. ";D:/luasocket/?.dll"require("LuaPanda").start("127.0.0.1",8818)。笔者是将这两行直接写入到UnLua.lua文件的首部。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值