前言

  公司开发的第二个虚幻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. %~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加上断点调试

[原创]UnLua Emmylua UE4开发环境搭建的更多相关文章

  1. 【转】android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)

    原文网址:http://www.cnblogs.com/zdz8207/archive/2012/11/27/android-ndk-install.html android 最新 NDK r8 在w ...

  2. android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)

      android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创) 一直想搞NDK开发却一直给其他事情耽搁了,参考了些网上的资料今天终于把 ...

  3. python开发环境搭建

    虽然网上有很多python开发环境搭建的文章,不过重复造轮子还是要的,记录一下过程,方便自己以后配置,也方便正在学习中的同事配置他们的环境. 1.准备好安装包 1)上python官网下载python运 ...

  4. node.js之开发环境搭建

    一.安装linux系统 (已安装linux可跳此步骤) 虚拟机推荐选择:VirtualBox 或者 Vmware (专业版永久激活码:5A02H-AU243-TZJ49-GTC7K-3C61N) 我这 ...

  5. (转载)JAVA敏捷开发环境搭建

    整个软件项目分为四个环境 开发本地环境.开发环境.测试环境.IDC环境.和传统C++开发不一样的模式是多了第一个开发本地环境.这是为什么呢,因为目前大部分开发人员还是比较熟悉windows下开发.对于 ...

  6. Android开发环境搭建相关文章列表(转载)

    Android开发虽然有所了解,但是一直没有搭建开发环境去学习,Android的更新速度比较快了,Android1.0是2008年发布的,截止到目前为止Android已经更新Android5.0.1, ...

  7. eclipse python开发环境搭建

    eclipse python开发环境搭建[非原创] 1.在www.eclipse.org官网下载Eclipse Classic 4.2.2,Win7 64位下载eclipse-SDK-4.2.2-wi ...

  8. Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例【附详细代码】

    http://blog.csdn.net/xiefu5hh/article/details/51707529 Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例[附 ...

  9. .NET 开发环境搭建

    概述 在接下来的时间里,将会入手ASP.NET MVC这一专题,尽量用最快的时间,最有效的方法,分别从深度和广度上剖析这一专题,力求讲明白.讲透.以此来与大家分享,力求达到共同学习,共同交流,共同进步 ...

随机推荐

  1. CSS加载会阻塞页面显示?

    可能大家都知道,js执行会阻塞DOM树的解析和渲染,那么css加载会阻塞DOM树的解析和渲染吗?接下来,我们就一起来分析一下. 原理解析 那么为什么会出现上面的现象呢?我们从浏览器的渲染过程来解析下. ...

  2. WPF 精修篇 WPF 使用ActiveX

    原文:WPF 精修篇 WPF 使用ActiveX WPF 实现远程桌面功能 首先使用 开发人员命令提示 进入 自己的项目文件根目录下 输入 aximp C:\windows\System32\msts ...

  3. FCC-学习笔记 Pig Latin

    FCC-学习笔记  Pig Latin 1>最近在学习和练习FCC的题目.这个真的比较的好,推荐给大家. 2>中文版的地址:https://www.freecodecamp.cn/;英文版 ...

  4. wc.exe个人项目

    1.GitHub项目 https://github.com/Littlehui3/wc 2.用时表格 PSP2.1 任务内容 计划完成需要的时间(min) 实际完成需要的时间(min) Plannin ...

  5. Linux的权限管理操作-Linux从入门到精通第八天(非原创)

    文章大纲 一.网络相关概述二.网络相关命令三.项目上线流程(必须掌握)四.学习资料下载五.参考文章   一.网络相关概述 1. 网络发展 1.1 信息传递远古时期,人们就通过简单的语言.壁画等方式交 ...

  6. Python可视化查看数据集完整性: missingno库(用于数据分析前的数据检查)

    数据分析之前首先要保证数据集的质量,missingno库提供了一个灵活易用的可视化工具来观察数据缺失情况,是基于matplotlib的,接受pandas数据源 快速开始 样例数据使用 NYPD Mot ...

  7. linux中find命令的使用详解(转载)

    常用命令 find  (目录)   [-type d | f]  (文件夹 | 文件)   -name   (名称,可使用正则表达式) find  /root  -name "*core&q ...

  8. Vmware samba 搭建——Win10 共享

    配置环境 Win10 Vmware 15 ubuntu 16.04 Vmware 设置 安装 sudo apt-get install samba # 安装samba sudo apt-get ins ...

  9. SceneView聚焦当前选中项

    编辑器代码如下所示: Selection.activeGameObject = indexer; // 方法一 SceneView.FrameLastActiveSceneView(); // 方法二 ...

  10. Activiti6 查询由某人发起的流程请求 设置流程发起人

    发起流程时,配置activiti:initiator属性,并且在代码中: Authentication.setAuthenticatedUserId(userId); 其中,userId对应流程发起人 ...