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 选项了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/716176.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

应急加电电源车-在航空航天、武器等多领域的应用

应急加电电源车是一种专门设计用于在紧急情况下为其他设备提供电力支持的车辆。它通常由电池或燃料电池驱动&#xff0c;可以在没有外部电源的情况下为其他设备提供持续的电力供应。这种车辆在灾难救援、野外作业、军事行动等领域具有广泛的应用。 应急加电电源车通常具有以下…

WordPress建站入门教程:如何在本地电脑搭建WordPress网站?

前面跟大家分享了『WordPress建站入门教程&#xff1a;如何安装本地WordPress网站运行环境&#xff1f;』&#xff0c;接下来boke112百科就继续跟大家分享本地电脑如何搭建WordPress网站。 小皮面板&#xff08;phpstudy&#xff09;的“软件管理 – 网站程序”虽然可以一键部…

Springboot+vue的高校教师教研信息填报系统(有报告)。Javaee项目,springboot vue前后端分离项目。

演示视频&#xff1a; Springbootvue的高校教师教研信息填报系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot vue前后端分离项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&am…

数据审计 -本福德定律 Benford‘s law (sample database classicmodels _No.6)

数据审计 -本福德定律 Benford’s law 准备工作&#xff0c;可以去下载 classicmodels 数据库资源如下 [ 点击&#xff1a;classicmodels] 也可以去我的博客资源下载 文章目录 数据审计 -本福德定律 Benfords law 前言一、什么是 本福德定律&#xff1f;二、数学公式三、应用…

最新会声会影2024旗舰版系统配置要求

大家好呀&#xff01;小编今天给大家带来了一个超级实用的信息&#xff0c;关于会声会影2024旗舰版的系统配置要求&#xff01; 会声会影2023-安装包&#xff1a; https://souurl.cn/gtyDFc 会声会影2023-安装包&#xff1a; https://souurl.cn/ZQ6QWp 会声会影2022-安装包&a…

Java零基础-反序列化和序列化

哈喽&#xff0c;各位小伙伴们&#xff0c;你们好呀&#xff0c;我是喵手。 今天我要给大家分享一些自己日常学习到的一些知识点&#xff0c;并以文字的形式跟大家一起交流&#xff0c;互相学习&#xff0c;一个人虽可以走的更快&#xff0c;但一群人可以走的更远。 我是一名后…

回归预测 | Matlab实现CPO-BiTCN-BiGRU冠豪猪算法优化双向时间卷积门控循环单元多变量回归预测

回归预测 | Matlab实现CPO-BiTCN-BiGRU冠豪猪算法优化双向时间卷积门控循环单元多变量回归预测 目录 回归预测 | Matlab实现CPO-BiTCN-BiGRU冠豪猪算法优化双向时间卷积门控循环单元多变量回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现CPO-BiTCN-B…

mc生存插火把

题目描述 话说有一天 linyorson 在“我的世界”开了一个 nn 的方阵&#xff0c;现在他有 m 个火把和 k 个萤石&#xff0c;分别放在 (x1,y1)∼(xm,ym) 和 (o1,p1)∼(ok,pk)的位置&#xff0c;没有光并且没放东西的地方会生成怪物。请问在这个方阵中有几个点会生成怪物&#xf…

Vue开发实例(六)实现左侧菜单导航

左侧菜单导航 一、一级菜单二、二级菜单三、三级菜单1、加入相关事件 四、菜单点击跳转1. 创建新页面2. 配置路由3. 菜单中加入路由配置4、处理默认的Main窗口为空的情况 五、动态左侧菜单导航1、动态实现一级菜单2、动态实现二级菜单 一、一级菜单 在之前的Aside.vue中去实现…

SRIO--IP讲解及环回测试

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、IP例化文件二、SRIO环回工程搭建三、板级验证3.1 板级验证环节3.2 系统所需硬件3.3 ILA波形前言 本章将为大家介绍 “Serial RapidIO Gen2 ”IP 的使用以及配置方法。“Serial RapidIO Ge…

JavaScript入门学(Web APIs)

1.变量声明 2 DOM介绍 2.1 什么是DOM 2.2 DOM树 2.3 DOM对象&#xff08;重要&#xff09; 3.DOM&#xff08;文档对象模型&#xff09;-获取元素 3.1 获取匹配的第一个元素 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8&…

Canvs的js库:Fabric.js简单强大,用于绘制各种图形

Fabric.js是一个用于创建交互式的HTML5 Canvas应用程序的JavaScript库。它提供了一个简单而强大的API&#xff0c;用于在Web浏览器中绘制和操作图形对象。Fabric.js可以用于创建各种图形应用程序&#xff0c;例如绘图编辑器、图像编辑器、流程图、地图和数据可视化等。 官网文…

校企合作项目总结

校企合作总结 前言项目框架开发待办水平越权总结 前言 寒假里小组给了校企合作的项目&#xff0c;分配给我的工作量总共也就两三套crud&#xff0c;虽然工作很少&#xff0c;但还是从里面学到了很多东西&#xff0c;收获了大量的实习经验&#xff0c;在这里总结记录一下。 项…

FreeRTOS学习笔记——FreeRTOS中断管理

精华总结&#xff1a; 中断优先级0为最高&#xff0c;任务优先级0为最低 中断优先级分组中为方便rtos管理4bit全部设置成抢占优先级 32单片机的中断管理是由3个寄存器完成&#xff08;名字忽略&#xff0c;具体功能忽略&#xff09;&#xff0c;三个寄存器都是32bit&#xff0c…

微信小程序云开发教程——墨刀原型工具入门(文件设置+编辑组件)

引言 作为一个小白&#xff0c;小北要怎么在短时间内快速学会微信小程序原型设计&#xff1f; “时间紧&#xff0c;任务重”&#xff0c;这意味着学习时必须把握微信小程序原型设计中的重点、难点&#xff0c;而非面面俱到。 要在短时间内理解、掌握一个工具的使用&#xf…

NOC2023软件创意编程(学而思赛道)python小高组决赛真题

目录 下载原文档打印做题: 软件创意编程 一、参赛范围 1.参赛组别:小学低年级组(1-3 年级)、小学高年级组(4-6 年级)、初中组。 2.参赛人数:1 人。 3.指导教师:1 人(可空缺)。 4.每人限参加 1 个赛项。 组别确定:以地方教育行政主管部门(教委、教育厅、教育局) 认…

【风格迁移】StyTr2:引入 Transformer 解决 CNN 在长距离依赖性处理不足和细节丢失问题

StyTr2&#xff1a;引入 Transformer 解决 CNN 在长距离依赖性处理不足和细节丢失问题 提出背景StyTr2 组成StyTr2 架构 提出背景 论文&#xff1a;https://arxiv.org/pdf/2105.14576.pdf 代码&#xff1a;https://github.com/diyiiyiii/StyTR-2 问题&#xff1a; 传统的神经…

idea中springboot项目创建后追加依赖

springboot项目创建后追加依赖 前言1、安装插件editstarters设置->插件 2、进入pom.xml 页面 前言 在项目创建的时候选择好依赖创建项目&#xff0c;之后追加依赖不是很方便&#xff0c;介绍一个简单的使用方法&#xff0c;通过editstarters进行添加 1、安装插件editstart…

在 Ubuntu 终端输出不同颜色、粗体、下划线或其他样式的字体

嗯。调试时总发现自己打印的调试信息太过普通、单调&#xff0c;于是乎…… Notice 要在终端实现字体的特殊样式&#xff0c;通常通过使用特殊的控制字符来实现&#xff0c;而不是通过某语言本身的功能来实现。 在大多数终端中&#xff0c;可以使用 ANSI 转义序列来设置字体的…

CleanMyMac X2024测评深度分析与功能全面介绍

一、软件概述 CleanMyMac X 是一款强大的Mac清理和优化工具&#xff0c;它可以帮助用户轻松管理和释放Mac上的空间&#xff0c;优化系统性能&#xff0c;提高运行速度。这款软件以其直观的用户界面和丰富的功能受到了广大Mac用户的欢迎。 CleanMyMac X4.14.6全新版下载如下: …