zoukankan      html  css  js  c++  java
  • [原创]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 ..in (
        rd /s /q ..in
    )
    mkdir ..in
    move *.exp ..in
    move *.dll ..in
    move *.exe ..in
    
    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)复制到 EngineEngineBinariesWin64

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

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

     5、UnLua.lua中require MobDebug

    五、OK,IDEA加上断点调试

  • 相关阅读:
    windows无法完成格式化
    javascript数组添加元素的三种方式
    sql server将字符串类型转换为数值类型
    javascript将字符串转化成json对象的3种方法
    bootstrap table刷新表格记录
    html元素的title属性值换行
    webstorm快捷键失效问题
    设计模式之原型,学习笔记
    设计模式之封装,学习笔记
    初了解JS设计模式,学习笔记
  • 原文地址:https://www.cnblogs.com/sevenyuan/p/11990776.html
Copyright © 2011-2022 走看看