虚幻引擎 遇到的问题总结

        初学UE,遇到很多问题,这里记录一下,防止以后忘记,还会不断添加


语言设置

        UE的中文翻译很多地方翻译的并不是很好,照着视频学习的话还是英文版的比较好。Edit(编辑)——>Editor preferences(编辑器偏好设置)——>Region&Language,这里可以设置语言和地区:

 禁止启动UE时自动启动SteamVR

        1.本工程禁止:
        菜单中 编辑->插件 找到Vertual Reality中的SteamVR,取消勾选。

        2.永久禁止:
        修改UE4版本目录下的SteamVR.uplugin文件:

         使用记事本打开,将"EnabledByDefault" : true,改为 “EnabledByDefault” : false,


打开蓝图后什么都不显示

        点击上边任务栏的Window,勾选上Class Defaults

         然后在弹出来的Class Defaults窗口中点击Open Full Blueprint Editor,就可以正常打开该蓝图了。


VS调试

       VS部分一般被分为DebugGame(直接以全屏方式运行你默认地图的游戏,可以调试,无法编辑蓝图)、DebugGame Editor(打开debug工程,可以编辑保存蓝图,可以调试信息)、Development(直接运行默认地图游戏,无法调试,无法修改蓝图)、Development Editor(可以修改蓝图,无法调试)。

        使用UE4在VS里加入断点调试,首先在VS中把解决方案配置改成DebugGame Editor,然后直接运行-->本地Windows调试器。运行后会进入新的UE4对话框,新的UE4对话框和老的有所区别,一个是Debug模式一个是正常编辑模式,在Debug模式的UE4中点击 Play 运行,就可以进入设置的断点了。


UE5编译报错

         在UE5的空项目中添加了第三方插件Logic Driver,然后编译项目时,报错:

Unable to build while Live Coding is active. Exit the editor and game, or press Ctrl+Alt+F11 if iterating on code in the editor or game

        由于UE5使用了livecode进行热编译,热编译时只会编译本身项目的工程,不会编译第三方插件的代码,可以关闭掉livecode编译:

 

UE5 使用Rider编译报错

        Expecting to find a type to be declared in a module rules named ‘RD’ in UE5Rules, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null. This type must derive from the ‘ModuleRules’ type defined by Unreal Build Tool.

         原因是在使用Rider时需要安装 RiderLink 插件,插件需要安装到游戏的项目中,不要安装到引擎中。已经安装到引擎中的,到虚幻5的安装目录下的 Engine\Plugins\Developer 路径下删除掉 RiderLink 文件夹,然后进入 Rider 的设置中安装 Riderlink 到游戏中。

 


编译报错

        C4458:declaration of "xxx" hides class member

        这个错误是由于声明的变量在其他头文件里(UE自带的)有同名的变量了,类的内层的作用域与外层作用域中同名的变量会隐藏外层的同名变量,导致报这个错误。不是语法的错误,换一个变量名就不会出现这个错误了。

<think>嗯,用户想了解虚幻引擎开发者常用的查找问题的方法。首先,我需要回忆一下相关的知识,并结合之前提供的引用内容来组织回答。记得用户之前提到了查找游戏对象和组件的方法,比如在Unreal中使用GetAllActorsOfClass,而Unity用不同的方法,但这里用户问的是虚幻引擎,所以重点在Unreal这边。 首先,我需要分步骤来回答这个问题。常见的查找方法可能包括内置函数、日志调试、调试工具、性能分析工具、文档和社区资源等。引用[2]中提到过虚幻引擎的查找方法,比如GetAllActorsOfClass,但用户现在的问题更广泛,是关于查找问题的方法,不仅仅是查找对象,还包括调试和解决问题的整体策略。 接下来,我需要考虑用户可能的实际需求。开发者遇到问题时,可能会先查日志,使用断点,或者引擎内置的工具如蓝图调试器。另外,性能分析工具如Unreal Insights也很重要。还有官方文档和社区论坛,比如AnswerHub和Stack Overflow,都是常用的资源。引用[3]里提到FName和硬编码名称,可能和资源管理有关,但用户的问题更偏向于调试方法,所以这部分可能暂时用不上,但可以提到资源管理相关的检查。 然后,我需要确保回答的结构清晰,分点说明,每个方法有具体例子,比如代码示例。比如使用UE_LOG输出日志,或者用断点检查变量状态。同时,要提到性能优化的工具,避免频繁查找对象导致的性能问题,如引用[2]中提到的,频繁调用查找函数会影响性能,所以应该缓存结果。 另外,用户可能需要知道如何高效地查找资源,比如使用FName和EName,这部分在引用[3]中有提到,可以简要说明。比如通过硬编码名称快速访问资源,减少字符串比较的开销。 最后,生成相关问题时要围绕用户的问题扩展,比如调试工具的使用、性能优化方法、资源管理技巧等。确保问题能够帮助用户深入理解相关主题。 总结回答的结构:分点列出方法,每个方法有说明和示例,引用相关的内容,最后提出相关问题。注意使用中文,符合用户的要求,同时正确使用LaTeX格式,虽然这里可能数学公式不多,但如果有的话需要正确应用。代码部分使用代码块格式,确保语法正确。</think>### 虚幻引擎开发者常用问题查找方法 虚幻引擎开发者解决复杂问题时通常采用以下系统化方法,结合引擎特性和工具链高效定位问题根源: --- #### 1. **使用内置查询函数与调试工具** - **对象查找** 通过 `UWorld::GetAllActorsOfClass()` 查找指定类型的 Actor 实例[^2]: ```cpp TArray<AActor*> FoundActors; UGameplayStatics::GetAllActorsOfClass(GetWorld(), AMyActorClass::StaticClass(), FoundActors); ``` 需注意此类操作应避免高频调用,可通过缓存结果优化性能[^2]。 - **日志调试** 使用 `UE_LOG` 输出关键变量状态: ```cpp UE_LOG(LogTemp, Warning, TEXT("Player Health: %f"), PlayerHealth); ``` 结合 `DrawDebug` 系列函数(如 `DrawDebugSphere`)在场景中可视化数据。 --- #### 2. **蓝图与C++调试器** - **蓝图断点** 在蓝图节点上右键添加断点,运行时通过 **Debug** 窗口观察数据流。 - **C++调试器** 在 Visual Studio 或 Rider 中附加到进程,设置条件断点检查内存状态或变量异常。 --- #### 3. **性能分析工具链** - **Unreal Insights** 通过录制游戏会话分析线程负载、渲染耗时和资源泄漏: ```bash -trace=default,frame,cpu,loadtime ``` - **Stat 命令** 实时查看性能指标: ``` stat fps # 显示帧率 stat unit # 分析线程耗时 ``` --- #### 4. **资源与名称系统检查** 通过 `FName` 系统快速比对硬编码名称(如 `NAME_None`)[^3],避免字符串操作开销: ```cpp if (Component->GetFName() == NAME_PhysicsBody) { // 处理物理组件 } ``` --- #### 5. **文档与社区资源** - **官方文档** 优先查阅 [Unreal Engine Documentation](https://docs.unrealengine.com/) 的 **API 参考**和**编程指南**。 - **AnswerHub 与论坛** 使用关键词(如 `"GetAllActorsOfClass performance"`)在社区搜索相似案例。 --- #### 6. **引擎源码调试** 通过 **GitHub Unreal Engine 仓库**(需订阅)直接查看关键函数实现,例如 `UGameplayStatics::GetAllActorsOfClass` 的底层实现逻辑。 ---
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值