Ubuntu20.04: UE4.27 中 Source Code 的编辑器下拉框没有 Rider选项
问题描述
���近想用 Rider 作为 UE4 开发的 IDE,但安装好 Rider 后,发现编辑器下拉框中没有 Rider 的选项,我检查了 UE4 的插件,发现 Rider Integration 插件已经安装且启用的。
环境:Ubuntu 20.04 + UE4.27 + Rider2023.2
解决方法
在网上找了挺久,主要都是两种解决方案,有的人可以成功解决问题,但我尝试后都没有生效。
1、将 Rider 启动文件的绝对路径写入到 RiderLocations.txt ,该文件在 /UE4安装目录/Engine/Plugins/Developer/RiderSourceCodeAccess/Resources/RiderLocations.txt
详细方法传送门
2、用虚幻引擎 master 分支的 RiderSourceCodeAccess 文件夹替换 UE 安装目录内原有的 RiderSourceCodeAccess,然后重新编译UE
RiderSourceCodeAccess 的路径为 /UE安装目录/Engine/Plugins/Developer/RiderSourceCodeAccess
详细方法传送门
3、从 JetBrains 的 Toolbox 下重新安装 Rider
详细方法传送门
查看插件源码
在使用1、2 两种办法都无效后,我尝试着去看了下RiderSourceCodeAccess 插件的源码,发现在UE4中加载IDE Rider都是需要找到 Rider 的安装目录,进而在安装目录内找到 ./bin/rider.sh 的启动文件, 于是我去看了搜索 Rider 安装目录的函数。
搜索安装目录的源码主要在 /UE4安装目录/Engine/Plugins/Developer/RiderSourceCodeAccess/Source/RiderSourceCodeAccess/Private/RiderPathLocator 下,该目录下有着 Linux、Mac、Win 子目录,分别是对应系统的 RiderPathLocator 的源文件。我看了 Linux 下的源文件,即 RiderPathLocatorLinux.cpp
插件会通过几种方法来找到 Rider 的源文件:
TSet FRiderPathLocator::CollectAllPaths() { TSet InstallInfos; InstallInfos.Append(GetInstalledRidersWithMdfind()); InstallInfos.Append(GetManuallyInstalledRiders()); // 手动安装 Rider 的 InstallInfos.Append(GetInstallInfosFromToolbox(GetToolboxPath(), "Rider*")); // 从 JetBrains 的 Toolbox 安装的 Rider InstallInfos.Append(GetInstallInfosFromResourceFile()); // 从 RiderLocations.txt 找 Rider 安装路径 return InstallInfos; }
而 GetInstallInfosFromResourceFile() 只在头文件定义了接口,在 Linux 下的源文件中并没有实现,所以方法1在Linux 上并不起作用。
所以我去看了 GetManuallyInstalledRiders 的实现:
static FString GetHomePath() { #if ENGINE_MAJOR_VERSION == 4 && ENGINE_MINOR_VERSION TArray // 获取完整的目录,即 FString FullPath = FPaths::Combine(FHomePath, RiderPath); // 在 FullPath 目录下找到可执行文件,即 ./bin/rider.sh TOptional Result.Add(InstallInfo.GetValue()); } } return Result; }p所以我发现可能是我的 Rider 安装目录的命名不符合搜索的规则,所以才没有 Rider选项。/p h3最终解决/h3 p因为我的 Rider 安装路径本来就是在家目录下,只是目录名是 JetBrains Rider 2023.2 ,所以我将起它重命名,以 Rider开头,这样的话,插件就能找到 Rider 的安装路径了。/pp修改好后,用UE4 打开项目,一般就能看到编辑器下拉框中有 Rider 选项了。/ppimg src="https://img-blog.csdnimg.cn/direct/ee0c495147da4ab397625adf5149eabf.png" //pp如果还是没有的话或者你修改了RiderSourceCodeAccess 里面的源码,你需要重新构建你的项目。/pp用 Rider 打开你的 project,选中你的 project 右键,选择 高级构建操作--> 重新构建所选项目。
这个过程大概会话 40~60分钟。
构建成功后,再次使用 UE4 打开你的项目,就可以看到 Rider 选项了。