UE4/UE5 引擎常见面试题总结(前端/游戏开发岗必看)
一、前言
本文整理UE4/UE5引擎开发岗位高频面试题,覆盖基础概念、渲染、蓝图、C++、性能优化、网络、物理、动画八大模块,适合校招、初级/中级UE开发岗复习,附核心答案要点,方便快速背诵。
二、基础概念类(必问)
- UE中的Actor和Component有什么区别?
-
Actor是场景中的实体对象,本身不包含功能,是一个容器。
-
Component是功能模块,挂载到Actor上赋予能力(移动、碰撞、渲染、音频等)。
-
关系:Actor包含多个Component,Component依附Actor存在。
- Pawn、Character、Controller分别是什么?
-
Pawn:可被控制的Actor,是角色基础。
-
Character:继承Pawn,自带CharacterMovement、CapsuleComponent,专门做人形移动。
-
Controller:负责控制逻辑,分PlayerController(玩家)、AIController(AI),与Pawn分离解耦。
- UObject、AActor、UActorComponent继承关系?
UObject → AActor
UObject → UActorComponent → 各种Component(USceneComponent等)
三、蓝图与C++相关(高频)
- 蓝图和C++各自优缺点?
-
蓝图:开发快、可视化、迭代快、适合逻辑/界面;运行效率低、大型项目难维护。
-
C++:执行效率高、底层可控、架构稳定;编译慢、上手门槛高。
-
项目规范常用:C++做底层框架+核心功能,蓝图做业务逻辑与配置。
- UE反射机制(UCLASS、UPROPERTY、UFUNCTION)作用?
-
实现GC垃圾回收、细节面板暴露、蓝图调用、序列化、编辑器集成。
-
不加宏,变量/函数无法被引擎识别与蓝图访问。
- GC垃圾回收机制简单说?
-
UE使用标记清除GC,UObject自动管理。
-
被强引用(UPROPERTY)的对象不会被回收;无引用则自动销毁。
-
避免野指针:不用裸指针,多用 TWeakPtr 、 TSharedPtr 、 UObject* 配合UPROPERTY。
四、渲染与材质(渲染/TA必问)
- 前向渲染与延迟渲染区别?UE默认?
-
前向:每个物体对每个灯单独绘制,适合少灯、移动端,支持透明。
-
延迟:先渲染几何信息到GBuffer,再统一光照,适合多灯、PC/主机。
-
UE默认PC/主机延迟渲染,移动平台前向为主。
- PBR是什么核心思路?
-
基于物理的渲染,遵循能量守恒,核心两部分:
-
漫反射Diffuse
-
高光Specular(粗糙度+金属度)
-
材质更真实,灯光统一,不用手动玄学调参。
- 什么是DrawCall?怎么优化?
-
DrawCall:CPU向GPU提交一次渲染命令。
-
优化:
-
合并Mesh、合并材质
-
使用Instancing(实例化)
-
LOD、剔除(视锥剔除、距离剔除)
-
减少透明物体、减少状态切换
五、动画系统
- 动画蓝图、Animation Blueprint工作流程?
-
状态机管理动画状态(Idle/Run/Jump)
-
混合空间BlendSpace处理方向/速度混合
-
动画蒙太奇Montage做技能、攻击、受击
-
根运动RootMotion、IK(手部/脚部)
- IK是什么?常用在哪?
-
逆向运动学,根据末端节点反推骨骼旋转。
-
常见:脚部贴地、手部抓握、瞄准IK。
六、物理与碰撞
- UE碰撞通道、碰撞响应有哪些?
-
通道:ECC_WorldStatic、WorldDynamic、Pawn、Visibility、Camera等。
-
响应:Block、Overlap、Ignore。
-
项目必须统一碰撞规范,避免逻辑BUG。
- 物理模拟(PhysX)常见优化?
-
减少模拟物体数量
-
合理设置质量、阻尼
-
远距离关闭物理、休眠不动物体
-
简化碰撞形状(用胶囊、盒子,不用复杂网格)
七、网络与多人(进阶必问)
- UE网络模型:Server/Client、Authority?
-
服务器拥有最高权限(Authority),客户端仅预测。
-
逻辑尽量在服务器跑,防止外挂与不同步。
- 复制相关:Replicate、RepNotify?
-
Replicate:属性从服务器同步到客户端。
-
RepNotify:属性同步后触发回调函数,做表现更新(血条、特效、状态)。
- RPC函数分类?
-
Server:客户端调用,服务器执行(必须可靠)
-
Client:服务器调用,对应客户端执行
-
NetMulticast:服务器调用,所有客户端执行
八、性能优化(面试官最爱)
-
UE性能优化常用手段(通用)
-
减少三角形数量、合理LOD
-
合并材质、减少贴图分辨率与通道
-
控制灯光数量,用静态灯、烘焙光照
-
合理使用遮挡剔除、HLOD
-
减少Tick函数,禁用不必要Tick
-
蓝图转C++核心逻辑
-
内存优化:减少冗余对象、及时释放资源
-
使用Stat Unit、Stat Game、ProfileGPU调试瓶颈
-
什么是Tick?为什么要少用?
-
Tick每帧执行,频繁逻辑非常耗性能。
-
能用定时器、事件驱动,绝不每帧跑逻辑。
九、常见场景题(实战向)
- 如何做一个角色跳跃?
-
Character自带Jump函数
-
给CharacterMovement设置跳跃高度、重力
-
动画蓝图监听IsInAir、Jump状态播放动画
- 如何实现物品拾取?
-
球体/盒子碰撞Overlap事件
-
判断碰撞对象是否为角色
-
销毁物品Actor,添加到背包数据结构
十、总结
UE开发面试核心考察:
-
基础架构理解(Actor/Component/Controller)
-
蓝图+C++配合思路
-
渲染/动画/物理基础
-
网络复制常识
-
性能优化意识
后续会更新UE高级面试题+手写C++代码题+项目经验回答模板,需要的同学点赞收藏。