[原創]UnLua Emmylua UE4開發環境搭建


前言

  公司開發的第二個虛幻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、啟動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加上斷點調試

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM