求职要求

社招对于求职者的学历要求有所下降:
- 大厂:本科生及以上
- 中小厂:大专及以上,最好是本科
对于算法相关的内容相比在校生要弱化一些:
- 大厂:还是需要手撕算法,具体看大厂要求
- 小厂:常用的排序算法、力扣、牛客网上的一些真题
具体要求
总结来说就是:公司项目细节 + Unity面试八股文
- 拥有至少一款上线的游戏产品,如果没有上线,请说明具体原因
- 项目管理经验(拥有5年工作经验及以上)
- 深挖简历中的项目,会问具体项目的细节
- 问各种技术底层原理实现
- Unity技术要求:
WARNING
- 热更新
- Unity组件原理
- 能用Unity实现项目中的某一个核心模块
- 系统架构设计(5年工作经验及以上)
- 负责过战斗系统相关的业务(3年左右工作经验)
- 有渲染优化方向的加分
一、C# 基础与进阶(社招必问,所有厂第一关)
社招会深挖底层、内存、GC、闭包、泛型、异步,结合 Unity 实战场景提问。
基础语法 & 面向对象
NOTE
- 值类型与引用类型(必问):内存分布、栈堆、赋值区别、
Vector3值类型坑、string特殊引用类型、深浅拷贝 - 类 class 和结构体 struct区别、使用场景、性能差异
- 重载、重写、隐藏(
new)区别;虚函数virtual、抽象类abstract、接口interface区别与选型 static、const、readonly区别ref、out、in参数区别- 集合:
List、Dictionary底层原理、扩容、哈希冲突、遍历坑、foreach原理、迭代器 - 装箱拆箱原理、性能危害、Unity 如何避免
C# 高级(社招重点深挖)
TIP
- 委托、事件、Func/Action/Predicate,底层、多播委托、解绑防内存泄漏、闭包捕获变量与内存泄漏(高频坑)
- 泛型原理、泛型约束、泛型与装箱优化
- C# GC 垃圾回收(必考):分代回收、托管 / 非托管资源、强 / 弱引用、大对象堆 LOH、GC 触发时机、卡顿原因、Unity 零 GC 方案、对象池原理
- 异步:
async/await原理、状态机、Task、线程、协程与 Task 区别 - 反射原理、性能代价、Unity 里反射的使用与规避
- 深拷贝、浅拷贝实现;序列化与反序列化(
[SerializeField]、ISerializable)
二、Unity 引擎核心基础(所有岗位必考)
1. 脚本生命周期(必背 + 顺序 + 原理)
完整执行顺序、Awake/**OnEnable/Start/Update/FixedUpdate/LateUpdate **区别、调用时机、帧率关系、使用场景。
为什么物理写FixedUpdate、Time.deltaTime/Time.fixedDeltaTime区别、帧同步问题。
加载顺序:Awak e→ OnEnable → Start
帧循环:物理更新(FixedUpdate) → Update → LateUpdate
销毁:OnDisable → OnDestroy
高频追问:
NOTE
- 多个脚本生命周期执行顺序怎么控制?
LateUpdate为什么适合相机跟随?- 脚本销毁、物体销毁、
Destroy与DestroyImmediate区别、空引用报错原因
2. 引擎基础概念
GameObject、Component、Transform层级结构、组合优于继承设计思想- 预制体 Prefab:实例化、嵌套预制体、预制体变体、修改实例、还原、丢失引用原因
- 坐标系:世界坐标、本地坐标、屏幕坐标、UI 坐标转换;Unity左手坐标系、坐标转换 API(
Transform.TransformPoint等) - 脚本挂载、
GetComponent、Find系列 API 性能对比、查找优化 Instantiate、Destroy底层、内存问题、对象池必要性
3. 协程 Coroutine(高频)
- 协程原理、底层实现、是否多线程、执行机制
yield return所有用法、WaitForEndOfFrame、WaitForFixedUpdate- 协程内存泄漏、停止、嵌套、和
Task异步对比、适用场景 - 协程管理器封装、单例管理
三、物理系统(3D/2D 全考,游戏业务高频)
IMPORTANT
- 碰撞器 Collider、触发器 IsTrigger区别、触发 / 碰撞回调函数完整生命周期(
OnCollisionEnter/Stay/Exit、OnTrigger系列)、触发条件Unity官方开发者社区 - Rigidbody 刚体、CharacterController区别、适用场景、移动方案对比(Transform 位移 / 刚体力 / 角色控制器)Unity官方开发者社区
- 高速物体碰撞穿透原因、解决方案(连续碰撞检测 CCD、刚体速度限制、层设置)
- 射线检测、球形检测、盒形检测原理、层过滤、遮罩
LayerMask - 刚体力 API:
AddForce、AddForceAtPosition、AddTorque区别;力模式ForceMode - 关节(Hinge 等)、物理材质、重力、角速度、休眠唤醒
- 2D 物理(Rigidbody2D、Collider2D)与 3D 差异、移动端适配
四、渲染管线、图形学、DrawCall 优化(中高级社招核心重难点)
大厂、主程必深挖,中小厂也高频基础题。
1. 基础渲染概念
WARNING
- DrawCall定义、CPU-GPU 通信开销、为什么要优化 DC
- 静态合批、动态合批、SRP Batcher 原理、条件、优缺点、开销、适用场景
- GPU Instancing GPU 实例化原理、使用场景
- Material、Shader、Texture 三者关系、渲染管线流程
- LOD 多层次细节、Mipmap 原理、优缺点、性能作用
- 前向渲染、延迟渲染区别、光照处理、移动端适配
- 内置管线、URP、HDRP 区别;URP 优势、移动端适配、SRP 管线特性
- 深度测试、深度写入、剔除、裁剪、抗锯齿、透明物体渲染顺序问题
2. Shader 基础(社招必问基础,不考复杂手写)
CAUTION
- Shader 结构、Pass、Properties、CG/HLSL 基础语义
- 漫反射、高光光照模型
- 透明、半透明、AlphaTest/AlphaBlend 区别、渲染排序
- 材质动态修改、材质实例共享材质坑、GPU 材质实例
- 贴图压缩、移动端纹理格式、内存优化
五、UGUI(手游客户端必考,UI 专项深度题)
- Canvas 渲染模式(世界 / 屏幕 / 世界空间)、Canvas 分层、动静分离优化
- UGUI 合批原理:合批条件(材质、贴图、Z 轴、顶点)、断批原因(字体、新材质、图集、遮罩)、优化方案
- Image、RawImage 区别、性能、使用场景
- Text、TextMeshPro 区别、字体图集、字体合批问题
- RectTransform、锚点 Anchors、 pivot pivot、自适应适配原理
- 遮罩 Mask、RectMask2D 原理、性能开销、UI 粒子问题
- UI 事件系统、EventSystem、UGUI 点击检测、射线穿透、输入拦截
- UI 框架、弹窗管理、UI 对象池、界面打开关闭流程、UI 内存优化
六、资源管理、AssetBundle、热更新(手游社招核心)
WARNING
国内手游 100% 必考,区分新手与熟手核心模块。
- Resources 加载、
AssetBundle加载全流程、依赖打包、AB 卸载、内存释放 - Addressables(现代主流):相比 AB 优势、分组、依赖、异步加载、热更流程
- 资源加载方式对比、同步异步、内存缓存、重复加载问题
- 打包策略:分包、热更包、差分更新、资源冗余、图集打包规范
- 预制体依赖、材质贴图依赖、资源引用链、内存泄漏排查
- 热更新方案:ILRuntime、HybridCLR(黄鸭)原理、热更代码限制、跨平台、热更资源与代码流程
- 资源 AB 版本管理、校验、下载、断点续传
七、框架设计、设计模式、工程架构(中高级、主程必问)
TIP
社招非常看重项目架构、代码规范、解耦、可维护性,不只是会写业务。
- 单例模式:Unity 单例各种写法、线程安全、防重复挂载、销毁坑、管理器单例(GameManager/UIManager/AudioManager)、单例滥用问题
- 常用设计模式在 Unity 实战:工厂、对象池、观察者(事件系统)、外观、策略、适配器
- 事件系统设计:全局事件、消息中心、注册解绑、防空、防重复、内存泄漏
- 管理器框架:模块划分(UI / 场景 / 音频 / 资源 / 输入)、依赖解耦、初始化顺序
- 依赖注入 DI(Zenject/VContainer):优势、解决什么问题、框架解耦、项目实践
- 面向数据编程 DOTS 基础、ECS 概念、适用场景、性能优势
- 项目工程规范:目录结构、命名规范、模块分层、多团队协作、配置表管理(Json/Excel)
八、性能优化全体系(社招高频综合大题,必准备)
TIP
面试官最爱综合提问:你项目做过哪些优化?从 CPU、GPU、内存、电量、卡顿全维度。
1. CPU 优化
- 减少
GetComponent、Find、频繁反射、空判断 - 协程 / 定时器优化、对象池复用、减少
Instantiate/Destroy - 逻辑分层、FixedUpdate 精简、减少每帧复杂计算
- 事件注册解绑、闭包、委托内存泄漏治理
2. GPU 优化(渲染)
- DrawCall 全方案优化(合批、GPU Instancing)
- 贴图压缩、Mipmap、LOD、精简 Shader、关闭无用光照
- 透明物体、粒子优化、裁剪、远距物体剔除
3. 内存优化
- AB / 资源加载卸载、冗余资源清理、图集合理拆分
- 托管内存:减少装箱拆箱、集合复用、零 GC 代码
- 图片、音频、模型资源内存占用优化
- 场景内存、常驻对象管理、卸载无用场景资源
4. 移动端专项优化(手游重点)
- 包体大小优化、热更分包、纹理压缩
- 耗电、发热、帧率稳定、卡顿排查工具(Profiler)
- 适配、内存溢出 OOM、闪退原因与解决
5. 工具
Unity Profiler 使用、CPU/GPU/ 内存分析、性能瓶颈定位
九、跨平台、底层、IL2CPP(大厂进阶)
- Mono 与IL2CPP区别、打包差异、性能、GC、热更新、平台限制
- Android/iOS 平台适配、权限、屏幕、触摸、后台前后台、闪退适配
- WebGL 打包限制、内存、加载、兼容性
- Unity 多线程:主线程限制、子线程能干什么、不能干什么、线程安全、回调回主线程
- 原生插件、Android/iOS 原生交互
十、项目深挖(社招占比最高,几乎全程)
NOTE
社招项目经验>纯理论,所有你简历写的内容都会深挖,必问套路
- 完整介绍你做过的项目、负责模块、技术栈、难点
- 项目里最大难点、怎么分析、怎么解决、踩过什么坑、为什么这么做、有没有更好方案
- 你封装过哪些管理器 / 框架、设计思路、优缺点
- 资源加载、热更新在项目里完整流程、遇到的问题
- 项目卡顿、内存暴涨、闪退、Bug 排查全过程
- 你做过的优化、量化数据(DC 降低多少、内存降多少、帧率提升)
- 团队协作、版本、打包、渠道、配置表、对接工作
十一、手撕代码、手写题(笔试 + 现场手写)
TIP
高频手写代码题,社招常现场写
- 线程安全单例(Unity 防挂载、防销毁版本)
- 通用对象池(泛型、复用、回收、扩容)
- 全局事件消息系统(注册、派发、注销)
- 协程管理器封装
- AB/Addressables 异步加载封装
- UI 弹窗层级管理、UI 打开关闭栈结构
- 射线检测、物体移动、相机跟随完整代码
- 解决闭包内存泄漏、委托解绑代码
十二、计算机基础、网络、数据结构算法(大厂 / 中高级)
CAUTION
中小厂基本不考,腾讯网易米哈游、主程必问基础
- 数据结构:链表、二叉树、队列、栈、哈希表基础
- 简单算法:排序、查找、简单动态规划、数组处理
- 计算机网络:TCP/UDP、HTTP、长连接、粘包拆包、游戏网络基础
- 操作系统:进程线程、内存、缓存基础
十三、冷门补充 & 反问环节
TIP
冷门高频题
- Unity 空物体作用、
SetActive(false)与SetEnable区别 - 音频系统:AudioSource、AudioMixer、AB 加载音频、内存管理
- 动画系统:Animator、Animation 区别、状态机、参数、动画事件、动画融合
- 粒子系统优化、大量粒子性能问题
CAUTION
面试结尾反问(必准备)
- 团队技术栈、项目类型、技术规划
- 岗位工作内容、业务模块、技术挑战
- 团队使用的框架、热更方案、渲染管线
- 新人成长、技术氛围、晋升路径
社招分级考点总结(按你的工作年限)
1-3 年中级 Unity 客户端(最普遍)
必考
NOTE
C# 基础进阶、Unity 生命周期、协程、物理、UGUI、AB 资源、基础渲染 DC 优化、简单框架、项目深挖、手写单例 / 对象池
爱考
TIP
深度 Shader、DOTS、底层 IL2CPP 原理、复杂架构
3-5 年高级 / 主程
必考全部
WARNING
C# 底层 GC、IL2CPP、完整渲染管线、URP 深度、Addressables 全套、架构设计、DI 框架、全维度性能优化、项目难点攻坚、热更新底层、多线程、复杂框架、综合方案设计