UE 面试题库 · 整理版

初级速查索引

一、引擎对象模型与生命周期(第1章 基础概念与引擎架构)

  • UObject / 普通C++对象 / AActor 的职责边界(难度:★☆☆☆☆)→ 归属章节:第1章 基础概念与引擎架构
  • 为什么不能对 UObject 使用 new/delete 或 std::shared_ptr,应如何创建和持有(难度:★☆☆☆☆)→ 归属章节:第1章 基础概念与引擎架构
  • UPROPERTY 不只是面板显示,它影响哪些系统(难度:★☆☆☆☆)→ 归属章节:第1章 基础概念与引擎架构
  • TObjectPtr、裸指针、TWeakObjectPtr、TSoftObjectPtr 分别解决什么问题(难度:★☆☆☆☆)→ 归属章节:第1章 基础概念与引擎架构
  • CreateDefaultSubobject 与 NewObject 分别应在哪个生命周期中使用(难度:★☆☆☆☆)→ 归属章节:第1章 基础概念与引擎架构
  • 什么是 CDO,构造函数里哪些事不能依赖运行时 World(难度:★☆☆☆☆)→ 归属章节:第1章 基础概念与引擎架构
  • Cast、IsA、GetClass、接口检查分别适合什么情况(难度:★☆☆☆☆)→ 归属章节:第1章 基础概念与引擎架构
  • BeginPlay、PostInitializeComponents、Tick、EndPlay 的用途与顺序(难度:★☆☆☆☆)→ 归属章节:第1章 基础概念与引擎架构
  • UActorComponent 与 USceneComponent 的差别,何时自定义组件而非继承 Actor(难度:★☆☆☆☆)→ 归属章节:第1章 基础概念与引擎架构
  • Soft Object Reference 能解决什么加载问题,同步加载的风险是什么(难度:★☆☆☆☆)→ 归属章节:第1章 基础概念与引擎架构
  • 什么是软引用,为什么不能在游戏过程中随意同步加载(难度:★★☆☆☆)→ 归属章节:第1章 基础概念与引擎架构
  • 实现异步加载软引用资源后更新 UI 的流程,页面已销毁如何处理(难度:★★☆☆☆)→ 归属章节:第1章 基础概念与引擎架构
  • UObject、Actor 和普通 C++ 对象有什么区别(难度:★☆☆☆☆)→ 归属章节:第1章 基础概念与引擎架构
  • UPROPERTY 有哪些作用,为什么有时对象仍会被 GC(难度:★★☆☆☆)→ 归属章节:第1章 基础概念与引擎架构
  • CreateDefaultSubobject 和 NewObject 应如何选择(难度:★☆☆☆☆)→ 归属章节:第1章 基础概念与引擎架构
  • Actor 生命周期与常见初始化位置是什么(难度:★★☆☆☆)→ 归属章节:第1章 基础概念与引擎架构

二、C++ 与 UE 编程核心(第2章 C++与UE编程核心)

  • FName、FString、FText 如何选择,为什么 UI 本地化通常不用 FString(难度:★☆☆☆☆)→ 归属章节:第2章 C++与UE编程核心
  • TArray 的 Reserve、Add、Emplace 区别,何时发生指针/引用失效(难度:★☆☆☆☆)→ 归属章节:第2章 C++与UE编程核心
  • TMap::Find 返回的指针在什么情况下会失效(难度:★☆☆☆☆)→ 归属章节:第2章 C++与UE编程核心
  • UE 委托的单播、多播、动态委托区别,何时需要解绑(难度:★☆☆☆☆)→ 归属章节:第2章 C++与UE编程核心
  • 什么是值类型与引用语义,为何大型 UStruct 常通过 const& 传递(难度:★☆☆☆☆)→ 归属章节:第2章 C++与UE编程核心
  • TArray、TMap、TSet 应如何选择(难度:★☆☆☆☆)→ 归属章节:第2章 C++与UE编程核心
  • FName、FString、FText 有什么区别(难度:★☆☆☆☆)→ 归属章节:第2章 C++与UE编程核心

三、蓝图系统(第3章 蓝图系统与交互)

  • 蓝图通信有哪些方式,接口、事件分发器、直接引用怎样取舍(难度:★☆☆☆☆)→ 归属章节:第3章 蓝图系统与交互
  • 蓝图变量在编辑器可见但运行时为空,列出可能的生命周期原因(难度:★★☆☆☆)→ 归属章节:第3章 蓝图系统与交互
  • 蓝图与 C++ 应如何分工(难度:★☆☆☆☆)→ 归属章节:第3章 蓝图系统与交互

四、渲染管线与材质(第4章 渲染管线与材质系统)

  • LOD 与 HLOD 的基本差异,LOD 过渡常见的视觉问题(难度:★★☆☆☆)→ 归属章节:第4章 渲染管线与材质系统
  • Opaque、Masked、Translucent 材质的性能特征,为何透明特效需警惕 overdraw(难度:★★☆☆☆)→ 归属章节:第4章 渲染管线与材质系统
  • 什么是纹理 Mip,为什么远景仍加载最高 Mip 是问题(难度:★☆☆☆☆)→ 归属章节:第4章 渲染管线与材质系统

五、物理与碰撞(第6章 物理与碰撞系统)

  • 碰撞的 Query、Physics、Collision Channel、Profile 各表示什么(难度:★☆☆☆☆)→ 归属章节:第6章 物理与碰撞系统
  • Overlap、Hit、Trace 的触发条件有什么不同(难度:★☆☆☆☆)→ 归属章节:第6章 物理与碰撞系统
  • 角色偶尔穿过触发器,先检查哪些碰撞设置和事件条件(难度:★★☆☆☆)→ 归属章节:第6章 物理与碰撞系统

六、网络与多人(第7章 网络与多人游戏)

  • GameMode、GameState、PlayerState、PlayerController 各在哪一端存在(难度:★★☆☆☆)→ 归属章节:第7章 网络与多人游戏
  • Server Authoritative 意味着什么,客户端能否直接修改复制变量(难度:★★☆☆☆)→ 归属章节:第7章 网络与多人游戏
  • Replicated、RepNotify、RPC 分别用于什么类型的数据变化(难度:★★☆☆☆)→ 归属章节:第7章 网络与多人游戏
  • Reliable RPC 是否越多越好(难度:★★☆☆☆)→ 归属章节:第7章 网络与多人游戏
  • Dedicated Server 和 Listen Server 适合哪些产品(难度:★☆☆☆☆)→ 归属章节:第7章 网络与多人游戏
  • 用两名客户端测试复制功能时,最小验证清单包含什么(难度:★★☆☆☆)→ 归属章节:第7章 网络与多人游戏
  • 什么是 Replication、RPC 与 RepNotify(难度:★★☆☆☆)→ 归属章节:第7章 网络与多人游戏

七、性能优化(第8章 性能优化)

  • 为什么不应把所有逻辑塞进 Tick,给出三种替代方式(难度:★☆☆☆☆)→ 归属章节:第8章 性能优化
  • stat unit 的 Frame、Game、Draw、GPU 分别代表什么,如何初判瓶颈(难度:★☆☆☆☆)→ 归属章节:第8章 性能优化
  • Draw Call 是什么,Instanced Static Mesh 为什么可能有帮助但不是万能(难度:★★☆☆☆)→ 归属章节:第8章 性能优化
  • 实现子弹对象池,对象回收时至少要重置哪些状态(难度:★★☆☆☆)→ 归属章节:第8章 性能优化
  • 遇到掉帧时应如何开始排查(难度:★★☆☆☆)→ 归属章节:第8章 性能优化

八、Gameplay 框架(第10章 Gameplay框架与高级主题)

  • Actor、Pawn、Character、Controller 的关系,输入通常由谁处理(难度:★☆☆☆☆)→ 归属章节:第10章 Gameplay框架与高级主题
  • Enhanced Input 中 Mapping Context、Input Action、Trigger、Modifier 的职责(难度:★★☆☆☆)→ 归属章节:第10章 Gameplay框架与高级主题
  • 如何用 DataTable / DataAsset 驱动武器配置,何时选 Primary Data Asset(难度:★★☆☆☆)→ 归属章节:第10章 Gameplay框架与高级主题
  • SaveGame 的基本流程,哪些运行时对象不应直接序列化(难度:★★☆☆☆)→ 归属章节:第10章 Gameplay框架与高级主题
  • 如何避免 Widget 与角色对象互相强引用、相互查询(难度:★★☆☆☆)→ 归属章节:第10章 Gameplay框架与高级主题
  • 实现一个带冷却时间的可交互接口,如何防止重复触发(难度:★★☆☆☆)→ 归属章节:第10章 Gameplay框架与高级主题
  • Actor、Pawn、Character、Controller、GameMode 与 GameState 的职责(难度:★★☆☆☆)→ 归属章节:第10章 Gameplay框架与高级主题
  • 如何设计一个可交互门(难度:★★★☆☆)→ 归属章节:第10章 Gameplay框架与高级主题

九、工具链与工程实践(第18章 工具链与工程实践)

  • Content Browser 中 Redirector 是什么,为什么重命名后要 Fix Up(难度:★☆☆☆☆)→ 归属章节:第18章 工具链与工程实践
  • Cook、Package、Stage、Archive 各是什么,编辑器能运行为何打包失败(难度:★★☆☆☆)→ 归属章节:第18章 工具链与工程实践
  • Development、DebugGame、Shipping 配置的用途与差异(难度:★★☆☆☆)→ 归属章节:第18章 工具链与工程实践
  • .uasset 为什么通常不适合 Git 文本合并,如何降低二进制冲突(难度:★☆☆☆☆)→ 归属章节:第18章 工具链与工程实践
  • 日志类别、UE_LOG 和断点如何配合定位普通功能 bug(难度:★☆☆☆☆)→ 归属章节:第18章 工具链与工程实践