赞
踩
UnLua插件下载地址:GitHub - Tencent/UnLua: A feature-rich, easy-learning and highly optimized Lua scripting plugin for UE.
在github下载之后时一个完整的项目文件,打开项目文件是这样的,如下图
里面有一个射击的案例可以玩,我只是大概的看了一下,因为是入门我就按着我自己所想的记录一下,之前是没有接触虚幻的,是unity转的虚幻。
打开引擎新建一个项目文件,找到项目文件的地址,然后把从github上下载的腾讯开源项目里面把Plugins文件一整个拖进自己的项目文件里面,这样我们就相当于是有这个插件了。如下图(没有把Plugins文件是复制进去的,其他的文件是项目自有的,我这里创建的是空项目,语言选的是c++)
新建一个关卡,双击新建的关卡确保当前场景是我们新建的关卡,打开蓝图编辑器
打开之后是这样的,我们顺带点击红色框选的Class Settings
到这只是继承了UnLua接口还没有与Lua脚本关联(记得点击左上角的Compile编译一下然后Save一下),如果是在项目文件打开的情况下把Plugins文件复制进去的,要重新启动一下项目,要不然继承UnLua接口的时候会找不到UnLuaInterface
回到前面看到的项目文件的截图里面去,找到我们的Content文件(这个文件存放的都是项目所需要的资源),点击进去可以看见Scripts文件,在没有把我们的Plugins文件,复制进去的时候,是没有Scripts文件的。可能是Plugins文件里面有UnLua插件所以在把Plugins文件复制进去的时候就自己生成了一个Scripts文件,点进去的时候里面有两个lua脚本
在这里我们有三个办法创建lua脚本(可能大家还有其他的),第一种创建方法,我在Scripts文件里面新创建了一个文件夹,叫做MyFirstLua(也可以在自己使用的IDE里面创建),然后在新建的文件夹里新建一个lua脚本(我这里是创建一个文本文档把文件后缀改为lua)
再之后回到引擎里面(还是再关卡蓝图里),找到GetModuleName双击
双击进去之后就可以看见下图这样的,把我们新建的lua脚本的路径放进去。lua脚本所在文件夹.脚本名字(以此类推,多个文件夹:文件夹名.文件夹名.脚本名)
第二种是在Ide里面创建,拿VSCode举例:新建文件,记得在后面加上.lua要不然就不是lua脚本,要是忘记了可以之后再加也可以。关联和上面是一样的
我还发现了一个比较好玩的,在我们关卡蓝图继承了UnLua接口之后(本来是想说第三种方法的),点击这个UnLua其实也是可以新建一个lua脚本,但是当我们第一次打开这个关卡蓝图关联UnLua接口,再点击这个UnLua发现没有新建lua脚本的命令,只有一个Bind选项【图一】(Bind选项就是会继承UnLua接口,前面我们是手动去绑定的,这里可以直接绑定,但是需要编译保存之后退出蓝图再进关卡蓝图就可以看见继承UnLua了),第二次打开的时候才有新建lua脚本模板的选项【图二】
然后选择第二个选项就可以创建一个Lua脚本模板(芭比Q了,刚刚没有建成功,但是我早上的时候有新建成功来着【这里之后会详细记录一下】)我还是先上图吧,再在这里新建的lua脚本是下面图二这样的,前面说的那两种里面就是空白的
最后测试是否关联成功,在lua脚本里面码上这些代码,然后保存去引擎里面运行
怎么查看是否打印出来了,根据下面的步骤
打开这个窗口之后,运行就可以看到我们打印的东西(打印的东西太多,我就直接搜索了我们代码里面要打印的字符串)
好了,这里就到此结束了,我也只是记录一下自己的学习
另外脚本里面的 Initialize 函数是重写了C++里面的 Initialize 函数。如果不是C++里面的函数那么就是纯Lua(因为我不太会,然后去问了导师,是我导师和我说的,这句话是我自己理解的,要是有错欢迎指正)
UMG和Lua脚本关联和关卡和Lua脚本关联是一样的,只是新建Lua模板脚本里面的内容是不一样的
要是通过Bind来继承UnLua接口的,打开没有反应在编译保存之后可以关掉在重新打开
因为前面没有详细的说这种方式,这里就详细说了一下,其他的和前面关卡和Lua脚本关联差不多
UMG创建的Lua模板脚本是这样的,下图所示
测试是否关联成功和关卡一样,关卡里面把UMG和关卡关联起来,然后在 Initialize 函数里面用一个输出语句输出一下
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。