Fedora下安装Unity Editor

0x81 Unity3D

Unity3D是一个跨平台的游戏框架引擎,对Windows、macOS、Linux、Android、iOS、Web都有很好的支持。如果你使用的是PC或Macbook,那么恭喜你,Unity官方对他们支持的很好,还可以分平台支持安装。如果你很不幸和我一样用Linux发行版做开发,并且还不想因为一个小小的开发工具就更换开发环境,那么恭喜你,Unity对它们没有支持。不过很幸运,Unity在论坛推出了内测计划,并且官方对LTS的Ubuntu还有预测试并提供deb安装包,deb在安装时会主动解决好依赖。相对应的,Unity提供了sh自解压脚本,这就需要你自己处理依赖问题。

0x82 Unity依赖

使用ldd命名可以很方便的查看可执行ELF文件需要依赖哪些动态运行库,大部分库只要你安装了显示驱动都伴随安装了,个别的依赖利用so搜索安装对应的包即可,下面主要说说解决了Unity的依赖后还可能遇到的问题。

0x83 账号登录问题

最早提供的Linux测试版好像是5.1.0f1,没错5.x才开始提供支持的,但是很不幸的我们有时候连创建工程的机会都没有,因为你的登录页面是一片灰色,根本加载不出来。其实这个问题也没有什么好的解决办法,Unity工程管理页的登录功能是npm管理的,package.json就在你的$HOME/.local/share/unity3d/Packages/目录下,所以最干脆直接有效就是删掉这个目录让Unity重新下载,往往能解决这个问题。

0x84 Hold On后自动退出

其实所有的错误在$HOME/.config/unity3d/Editor.log中都能看到,这个问题出现在你已经创建完工程并启动了,但是经过一段时间的后毫无反馈的自动退出,其实这个问题的根源还是在依赖问题上,Unity虽然本身已经是64位程序了,我们也处理完了依赖正确启动,但是在Editor当中依赖的内置工具很多都是32位的(到5.6.0f3为止其实除了JobProcess其他的Tool[主要指UnityShaderCompiler]是32位的),在工程创建完成看到轮廓的时候我们也能看到UnityShaderCompiler不存在的错误。

知道了问题的根源,我们就去看一下这个文件,这个文件的位置是Editor/Data/Tool/UnityShaderCompiler。先看一下我解决完依赖之后的样子:

依赖库

但是实际上在之前的状况是ldd无法检测它,还是文件不存在那种,原因可能是因为它是32位可执行程序,但是file命令仍然能检测出它的文件类型并且其他的程序貌似也没遇到这种状况,可能是我没注意。所以只能换一种方式,用之前分析so库的工具readelf -d exec命令既可以分析动态链接信息:

依赖库

这样,就能看到它缺少哪些32位的依赖库了,进行安装即可。

其他的可能出现问题的地方也可以尝试这样分析,我的状况是处理完这个使用就已经没问题了。

0x85 Android VR里一个so库错误

这个问题最新版本已经没有了,这个文件以前叫AudioPluginOculusSpatializer.so,启动时总是找不到,现在这个文件叫libAudioPluginOculusSpatializer.so和我当时的修改方法一致:)

我目前遇到的问题就这么多,像是导入资源有时候会崩溃这种问题论坛上也有,只能等官方解决。想想自己在4.x的时候在Windows上简单玩过,进入5.x的时代后终于在年前重新尝试了一下Linux版本,不得不说时过境迁,自己也已经走了这么远,却还是这么菜哈哈哈哈,除了会怼人啥也不会:P