01 UObject 的生命周期和普通 C++ 对象有什么区别?为什么 UObject 不建议直接使用 new 和 delete?考察候选人对 Unreal 对象模型的理解,包括 UObject 的创建方式、生命周期阶段以及 GC 对其生命周期的介入,区分其与普通 C++ 对象在作用域、new/delete、智能指针管理上的差异。 查看学习思路
02 Unreal Engine 的垃圾回收是如何判断 UObject 是否仍然存活的?UPROPERTY 在其中起什么作用?考察候选人对 UE 垃圾回收机制的理解,包括可达性分析、根对象、UPROPERTY 引用追踪,以及 AddToRoot 和弱引用的使用场景。 查看学习思路
03 Unreal Engine 中为什么要区分 Game Thread、Render Thread 和 RHI Thread?跨线程访问对象时需要注意什么?考察候选人对 UE 多线程架构的理解,包括游戏逻辑、渲染命令生成和底层图形 API 执行的职责划分,以及跨线程访问对象的安全实践。 查看学习思路
04 UWorld::Tick 到 Actor Tick 的调用链大致是什么?Tick Group 和 Tick 依赖如何影响执行顺序?考察候选人对 UE 帧更新流程的理解,包括 Tick Manager 的调度机制、Tick Group 的划分以及 Tick 依赖的建立方式。 查看学习思路
05 TArray 的内存扩容和元素失效问题如何处理?RemoveAt 和 RemoveAtSwap 有什么区别?考察候选人对 TArray 连续内存特性的理解,包括扩容导致的元素失效、Reserve 的作用、删除元素时顺序与效率的权衡,以及高频场景下的稳定 ID 方案。 查看学习思路