当前位置:   article > 正文

UE4 + UnLua + VSCode + LuaPanda调试_unlua vscode

unlua vscode

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

整理

已准备的环境

  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文件的首部。
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号