Ubuntu20.04: UE4.27 中 Source Code 的编辑器下拉框没有 Rider选项

本文主要是介绍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,然后重新编译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 的源文件:

TSet<FInstallInfo> FRiderPathLocator::CollectAllPaths()
{TSet<FInstallInfo> 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 TArray<FInstallInfo> GetManuallyInstalledRiders()
{TArray<FInstallInfo> Result;TArray<FString> 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.shTOptional<FInstallInfo> 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 选项了。

这篇关于Ubuntu20.04: UE4.27 中 Source Code 的编辑器下拉框没有 Rider选项的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/771391

相关文章

使用nohup和--remove-source-files在后台运行rsync并记录日志方式

《使用nohup和--remove-source-files在后台运行rsync并记录日志方式》:本文主要介绍使用nohup和--remove-source-files在后台运行rsync并记录日... 目录一、什么是 --remove-source-files?二、示例命令三、命令详解1. nohup2.

Python+wxPython构建图像编辑器

《Python+wxPython构建图像编辑器》图像编辑应用是学习GUI编程和图像处理的绝佳项目,本教程中,我们将使用wxPython,一个跨平台的PythonGUI工具包,构建一个简单的... 目录引言环境设置创建主窗口加载和显示图像实现绘制工具矩形绘制箭头绘制文字绘制临时绘制处理缩放和旋转缩放旋转保存编

使用Python开发一个带EPUB转换功能的Markdown编辑器

《使用Python开发一个带EPUB转换功能的Markdown编辑器》Markdown因其简单易用和强大的格式支持,成为了写作者、开发者及内容创作者的首选格式,本文将通过Python开发一个Markd... 目录应用概览代码结构与核心组件1. 初始化与布局 (__init__)2. 工具栏 (setup_t

解决SpringBoot启动报错:Failed to load property source from location 'classpath:/application.yml'

《解决SpringBoot启动报错:Failedtoloadpropertysourcefromlocationclasspath:/application.yml问题》这篇文章主要介绍... 目录在启动SpringBoot项目时报如下错误原因可能是1.yml中语法错误2.yml文件格式是GBK总结在启动S

jupyter代码块没有运行图标的解决方案

《jupyter代码块没有运行图标的解决方案》:本文主要介绍jupyter代码块没有运行图标的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录jupyter代码块没有运行图标的解决1.找到Jupyter notebook的系统配置文件2.这时候一般会搜索到

HTML5中下拉框<select>标签的属性和样式详解

《HTML5中下拉框<select>标签的属性和样式详解》在HTML5中,下拉框(select标签)作为表单的重要组成部分,为用户提供了一个从预定义选项中选择值的方式,本文将深入探讨select标签的... 在html5中,下拉框(<select>标签)作为表单的重要组成部分,为用户提供了一个从预定义选项中

电脑没有仿宋GB2312字体怎么办? 仿宋GB2312字体下载安装及调出来的教程

《电脑没有仿宋GB2312字体怎么办?仿宋GB2312字体下载安装及调出来的教程》仿宋字体gb2312作为一种经典且常用的字体,广泛应用于各种场合,如何在计算机中调出仿宋字体gb2312?本文将为您... 仿宋_GB2312是公文标准字体之一,仿China编程宋是字体名称,GB2312是字php符编码标准名称(简

C# ComboBox下拉框实现搜索方式

《C#ComboBox下拉框实现搜索方式》文章介绍了如何在加载窗口时实现一个功能,并在ComboBox下拉框中添加键盘事件以实现搜索功能,由于数据不方便公开,作者表示理解并希望得到大家的指教... 目录C# ComboBox下拉框实现搜索步骤一步骤二步骤三总结C# ComboBox下拉框实现搜索步骤一这

豆包 MarsCode 不允许你还没有女朋友

在这个喧嚣的世界里,爱意需要被温柔地唤醒。为心爱的她制作每日一句小工具,就像是一场永不落幕的浪漫仪式,每天都在她的心田播撒爱的种子,让她的每一天都充满甜蜜与期待。 背景 在这个瞬息万变的时代,我们都在寻找那些能让我们慢下来,感受生活美好的瞬间。为了让这份浪漫持久而深刻,我们决定为女朋友定制一个每日一句小工具。这个工具会在她意想不到的时刻,为她呈现一句充满爱意的话语,让她的每一天都充满惊喜和感动

Android13_SystemUI下拉框新增音量控制条

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Android13_SystemUI下拉框新增音量控制条 一、必备知识二、源码分析对比1.brightness模块分析对比2.statusbar/phone 对应模块对比对比初始化类声明对比构造方法 三、源码修改四、相关资源 一、必备知识 在Android12 版本上面已经完成了功能的实现,目前是在And