前言
原本为Unity开发工作者,跟着项目转为了UE开发,此帖子记录开发UE的踩坑记录,长期更新
报错
1. This project does not have any source code:
一般只需要在ue项目根目录下面创建一个Source文件夹,再点击uproject生成visual studio project
当生成VStudio项目后打开项目,如果有插件安装提示可以安装一下
2. 导入UnLua组件时,通过Visual Studio生成项目解决方案时报错:'WindowsCompiler' does not contain a definition for 'VisualStudio2019'
解决方式:将Visual Studio 版本判断注释掉
3. 完成上述第2条编译时报错
解决方式:在\Plugins\UnLua\Source\UnLua\Public\UnLuaTemplates.h文件中添加Templates/ChooseClass.h
UnLua导入和使用
UnLua导入项目
1. 在官网UnLua github下载之后解压到本地,文件结构如下
2. 将文件夹中的Plugins复制到虚幻项目的根目录中
*(如果复制后打不开项目则按照标*的步骤做)3. 打开如下路径的cpp头文件
*4. 在文件中添加一行代码,同时在Build.cs文件中对Visual Studio版本号判断注释掉
5. 用Visual Studio打开项目,并生成解决方案
6. 右键项目文件,点击生成Visual Studio项目文件
7. 点击运行虚幻项目文件
UnLua中Lua编码和调用
1. 蓝图中的函数,使用Lua覆盖并调用
创建一个Actor蓝图,这里命名为BP_Test
打开蓝图并创建一个函数,命名为MyTestFunction
2. 创建绑定
在蓝图中可以看到UnLua的选项,如图
点击Bind,会跳转到Get Module Name窗口中(标记1),在Return Value中填入该蓝图的路径,如图
填入之后保存并编译,我的蓝图路径是Content/BluePrints,则BP_Test.lua模板代码的生成路径是Content/Scripts/BluePrints问价夹中,但UE项目是看不到lua文件的,可以在文件夹右键后在文件浏览中看到
3. 打开该文件,我的类名为MyTestClass,并通过MyTestClass:MyTestFunction()重写MyTestFunction,如图
4. 打开关卡蓝图
我们可以在关卡中生成Actor的实例并调用其中的函数,在关卡蓝图中做如下编辑保存,并编译即可
5. 点击游戏并运行,可以在Output Log中观察到我们的函数生效了