武宣县住房和城乡建设局网站,邯郸移动网站建设,彩页设计素材,上海市建设工程材料网站问题描述
最近想用 Rider 作为 UE4 开发的 IDE#xff0c;但安装好 Rider 后#xff0c;发现编辑器下拉框中没有 Rider 的选项#xff0c;我检查了 UE4 的插件#xff0c;发现 Rider Integration 插件已经安装且启用的。 环境#xff1a;Ubuntu 20.04 UE4.27 Rider2023…问题描述
最近想用 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然后重新编译UE4。 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 的源文件
TSetFInstallInfo FRiderPathLocator::CollectAllPaths()
{TSetFInstallInfo InstallInfos;InstallInfos.Append(GetInstalledRidersWithMdfind());InstallInfos.Append(GetManuallyInstalledRiders()); // 手动安装 Rider 的InstallInfos.Append(GetInstallInfosFromToolbox(GetToolboxPath(), Rider*)); // 从 JetBrains 的 Toolbox 安装的 RiderInstallInfos.Append(GetInstallInfosFromResourceFile()); // 从 RiderLocations.txt 找 Rider 安装路径return InstallInfos;
}而 GetInstallInfosFromResourceFile() 只在头文件定义了接口在 Linux 下的源文件中并没有实现所以方法1在Linux 上并不起作用。 所以我去看了 GetManuallyInstalledRiders 的实现
static FString GetHomePath()
{
#if ENGINE_MAJOR_VERSION 4 ENGINE_MINOR_VERSION 20TCHAR CHomePath[4096];FPlatformMisc::GetEnvironmentVariable(TEXT(HOME), CHomePath, ARRAY_COUNT(CHomePath));const FString FHomePath CHomePath;
#elseconst FString FHomePath FPlatformMisc::GetEnvironmentVariable(TEXT(HOME));
#endifreturn FHomePath;
}static TArrayFInstallInfo GetManuallyInstalledRiders()
{TArrayFInstallInfo Result;TArrayFString RiderPaths;const FString FHomePath GetHomePath(); // 获取家目录路径// 将家目录路径与 Rider* 拼接即 家目录路径/Rider*const FString LocalPathMask FPaths::Combine(FHomePath, TEXT(Rider*)); // 搜索匹配 家目录路径/Rider* 的目录IFileManager::Get().FindFiles(RiderPaths, *LocalPathMask, false, true);for(const FString RiderPath: RiderPaths){// 获取完整的目录即FString FullPath FPaths::Combine(FHomePath, RiderPath);// 在 FullPath 目录下找到可执行文件即 ./bin/rider.shTOptionalFInstallInfo InstallInfo FRiderPathLocator::GetInstallInfoFromRiderPath(FullPath, FInstallInfo::EInstallType::Installed);if(InstallInfo.IsSet()){Result.Add(InstallInfo.GetValue());}}return Result;
}所以我发现可能是我的 Rider 安装目录的命名不符合搜索的规则所以才没有 Rider选项。
最终解决
因为我的 Rider 安装路径本来就是在家目录下只是目录名是 JetBrains Rider 2023.2 所以我将起它重命名以 Rider开头这样的话插件就能找到 Rider 的安装路径了。 修改好后用UE4 打开项目一般就能看到编辑器下拉框中有 Rider 选项了。 如果还是没有的话或者你修改了RiderSourceCodeAccess 里面的源码你需要重新构建你的项目。 用 Rider 打开你的 project选中你的 project 右键选择 高级构建操作-- 重新构建所选项目。 这个过程大概会话 40~60分钟。 构建成功后再次使用 UE4 打开你的项目就可以看到 Rider 选项了。