智慧 + 毅力 = 无所不能

正确性、健壮性、可靠性、效率、易用性、可读性、可复用性、兼容性、可移植性...

导航

[原创]UnLua Emmylua UE4开发环境搭建

Posted on 2019-12-05 17:47  Bill Yuan  阅读(5547)  评论(0编辑  收藏  举报

前言

  公司开发的第二个虚幻4项目已经上线了,慢慢趋于稳定。回想起开荒的日子,历历在目。从引擎脚本的选择,各工具(导表,协议生成...)的重构、开发, 引擎扩展(多骨骼支持,Notify扩展,技能编辑器...),UMG蓝图的设计、适配,战斗Demo的创建,开发流程的接轨,功能堆砌,人员一波波的更迭...

  回到正题,18年中,立项的时候,UE4的脚本语言都在实验期,没有成熟的,Python、JS V8、Lua等等开源的脚本也都测试过,最终选择了Lua,主要是基于:

1、Lua语言在游戏业的广泛引用性。确认不远的将来会有更稳定、程序的框架

2、UE3老项目战斗Lua的继承

  最终框架使用了unreal.lua, https://github.com/asqbtcupid/unreal.lua, 感谢大大。最近也一直在关注腾讯游戏的lua开源框架,slua和UnLua,现在有时间了,所以来研究下,为新项目最准备。

一、相关源码获取

1,UnLua: https://github.com/Tencent/UnLua

2,Emmylua: https://github.com/EmmyLua/IntelliJ-EmmyLua

3,LuaSocket: https://github.com/diegonehab/luasocket

4,Lua5.3: https://www.lua.org/ftp/

5,MobDebug: https://github.com/pkulchenko/MobDebug/tree/master/src

二、LuaSocket搭建

1、编译Lua5.3.4

  Lua源码目录创建install.bat

REM open `Developer Command Prompt For Visual Studio`
REM install.bat 5.3.4

%~d0
cl /MD /O2 /c /DLUA_BUILD_AS_DLL *.c
ren lua.obj lua.o
ren luac.obj luac.o
link /DLL /IMPLIB:lua53.lib /OUT:lua53.dll *.obj
link /OUT:lua.exe lua.o lua53.lib
lib /OUT:lua53-static.lib *.obj
link /OUT:luac.exe luac.o lua53-static.lib

del *.obj
del *.o

REM bin
if exist ..\bin (
    rd /s /q ..\bin
)
mkdir ..\bin
move *.exp ..\bin
move *.dll ..\bin
move *.exe ..\bin

REM lib
if exist ..\lib (
    rd /s /q ..\lib
)
mkdir ..\lib
move *.lib ..\lib

REM include
if exist ..\include (
    rd /s /q ..\include
)
mkdir ..\include
copy lauxlib.h ..\include
copy lua.h ..\include
copy lua.hpp ..\include
copy luaconf.h ..\include
copy lualib.h ..\include

PAUSE

  启动x64 vs命令行,执行install.bat

  

   bin目录加入Path

2、编译LuaSocket

  a、打开sln,选择x64,指定Lua的include和lib目录,编译生成core.dll

  b、复制socket文件夹(带着core.dll)到lua bin目录,这个文件夹后续也要复制在游戏引擎目录

  c、复制src中的lua文件到lua bin目录

3、测试

  

三、Emmylua搭建

1、安装IntelliJ IDEA

2、编译Emmylua

  Emmylua源码目录下: gradlew buildAll

3、IDEA 安装Emmylua

  

  

4、设置IDEA配置

  a、取消代码拼写错误检测

  

 5、add source root

 6、启动debug调试

  新建运行配置

  

  运行

      

四、引擎、UnLua配置

1、UnLua源码置于Plugins下

2、复制socket文件夹(带着core.dll)复制到 Engine\Engine\Binaries\Win64

3、Lua脚本Content\Script目录下,创建debugger文件夹,将LuaSocket源码下的lua复制进来

4、MobDebug.lua也复制进来,修改Socket路径

 5、UnLua.lua中require MobDebug

 

 

五、OK,IDEA加上断点调试