sluaunreal插件的作用这里就不多介绍了,它的github地址是:https://github.com/Tencent/sluaunreal

样例

首先clone项目,并把tag修改为对应支持ue版本,我这里是ue4.22,所以用1.1的tag

git clone https://github.com/Tencent/sluaunreal.git
git tag   //查看版本
git checkout 1.1

C++工程

创建一个UE4的c++的空项目或者打开目标C++项目
将clone的sluaunreal中的Plugins和Tools文件夹拷贝进项目文件夹中
Snipaste_2020-12-14_22-54-08.jpg

复制sluaunreal/Source/xx.Build.cs文件如下代码替换到项目/Source/xx.Build.cs中
Snipaste_2020-12-14_22-56-48.jpg
Snipaste_2020-12-14_22-57-38.jpg

重新编译:
Snipaste_2020-12-14_23-01-45.jpg
Snipaste_2020-12-14_23-04-04.jpg

编译完成后重启UE项目
发现上方多了该图标说明启用成功了
Snipaste_2020-12-14_23-06-59.jpg

接下来再来创建GameInstance类
Snipaste_2020-12-14_23-08-39.jpg
Snipaste_2020-12-14_23-08-54.jpg

将sluaunreal下的MyGameInstance.h和.cpp复制替换,需要注意的是要把.h中的项目名改回来
Snipaste_2020-12-14_23-26-21.jpg

然后在projectSettings中修改游戏实例为MyGameInstance
Snipaste_2020-12-14_23-27-30.jpg

然后就可以编写lua文件了

在项目Content文件夹下创建文件夹名为Lua,然后用vscode打开Content文件夹,在Lua文件夹下创建MyPawn.lua,代码如下:

local pawn = {}

function pawn:ReceiveBeginPlay()
    print("this is MyPawn print")
end

return pawn

然后打开UE4在Content中创建BP文件夹,在其中创建类蓝图名为BP_MyPawn,选择父类为LuaPawn:
Snipaste_2020-12-14_23-38-19.jpg

slua中的luaFilePath设置为刚写的MyPawn,编译保存。
Snipaste_2020-12-14_23-43-26.jpg

将该类蓝图拖入关卡中,AutoPossessPlayer设为player0
Snipaste_2020-12-14_23-47-01.jpg

最后运行,如果在输出面板中输出了lua脚本中编写的输出语句则说明成功了。

学习视频:https://www.bilibili.com/video/BV1Vi4y1V7ZS?from=search&seid=5955238818895093526[/scode]

补充
如果目标项目是蓝图项目,可以先随便创建一个c++Actor,ue4就会自动创建一个c++工程,然后重复以上步骤即可。

最后修改:2021 年 06 月 20 日
如果觉得我的文章对你有用,请随意赞赏