这里有几个坑:
不要幻想在虚拟机上跑Unreal,理论上在虚拟机上开发编译工程会效率高,但游戏引擎不是。主要是GPU的问题,虚拟机做了很多trick模拟真实GPU,有自己的驱动,但Unreal识别不了虚拟机的图形驱动接口,即使编译成功也运行不了,除非用-nullrhi启动命令窗口模式。但凡涉及到渲染的内容在虚拟机上都效率极低。而且在虚拟机上编译的引擎文件巨大,大概有50-60G。
建议装双系统开发,虽然切换有点麻烦。(这里选用的是ubuntu16.04)
1.安装ubuntu16.04
2.sudo apt-get update && sudo apt-get upgrade
3.更新驱动: 在SystemSetting下的详细信息->概况,点击右下角按钮。
4.切换显卡驱动:在SystemSetting下软件与更新->附加驱动里,找到Nvdia的显卡驱动,选中后点击右下角的应用修改,稍等一段时间切换。
5.安装对应版本clang和快捷方式(以UE4.22为例):sudo apt-get install clang-7.0 && sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-7.0 2 --slave /usr/bin/clang++ clang++ /usr/bin/clang++-7.0,对应引擎版本参考下面的文档。
Linux的交叉编译api.unrealengine.com
系统有可能有自带Clang,Ubuntu16.04下默认是4.0版本,如果需要其他版本,下载对应版本后需要切换,方法可自行查找或者参考以下文档:
blog.csdn.net
6.安装Git并配置ssh,拉取引擎源码,这个步骤就不详细写了,或者也可以下载特定版本的源码zip包,unzip -d ~/UnrealEngine UnrealEngine-4.22.zip解压。
7.和Windows下类似,源码目录下执行Setup.sh,中间有弹出窗口需要点击确认,之后再执行GenerateProjectFiles.sh,成功后执行Make。根据机器核数和主频,编译时间10分钟到1个小时不等。如果编译出错,可以看看是不是clang版本有问题。
8.在/Engine/Binaries/Linux下执行UE4Editor启动编辑器。如果提示无法识别显卡,检查显卡驱动是否安装正确。
Tips:
1.到这里引擎已经可以使用了,但开发还需要对应的IDE,官方的示例选用的是qtcreator,写的比较清楚:
如何为UE4设置Qt Creatorapi.unrealengine.com
安装QTCreator:sudo apt-get install qtcreator
如果配置的步骤中出现桌面配置无法选取的问题,可能是qt未安装正确,有两个解决办法:
a.重新安装qt。
b.如果系统里有内置版本,可以切换为系统提供的qt版本:点击Option查看桌面配置,配置中应该有(invalidtype)字样的选项,点击,切换其他版本。
2.如果要拷贝Windows工程到Linux上编译
用GenerateProjectFiles.sh生成C++工程
GenerateProjectFiles.sh /path/to/.uproject -game -engine