|
看了你的简历,如果是我面试你,可能会问下面的问题:
1、你提到“熟悉内存管理/指针与引用”。C++中指针和引用的核心区别是什么?为什么在函数传参时,有时用指针,有时用引用?传递指针和传递引用在底层有何不同?
2、你说“熟悉STL容器实现原理”。具体说说std::vector内部是如何动态管理内存的?std::map和std::unordered_map(哈希表)分别在什么场景下使用?哈希表如何处理冲突?
3、详细解释一下C#的垃圾回收(GC)机制的工作原理(尤其是分代GC)。GC是如何判断一个对象是“垃圾”的?在Unity开发中,如何避免由不当内存管理(特别是非托管资源或大对象频繁创建)引起的GC卡顿?
4、你熟悉快速排序。它的平均时间复杂度和最坏时间复杂度分别是多少?什么情况下会出现最坏时间复杂度?有哪些策略可以优化快速排序以避免最坏情况?
5、描述一下你在项目中使用动画状态机(Animator Controller)实现角色/丧尸行为动作的具体流程。你是如何设计状态(Idle, Walk, Attack, Die等)和过渡条件的?
6、详细讲讲射线检测(Raycast)的原理和应用场景。在你项目的角色、丧尸、炮塔的攻击行为中,你是如何利用射线检测进行碰撞处理的?射线检测与碰撞检测(Collider触发碰撞事件)的主要使用场景区别在哪里?
7、JSON相比XML有哪些优势?在Unity中,你为何选择封装LitJson工具来管理数据?请简述一下你的Json管理器是如何实现“一键存储和读取”的?序列化和反序列化过程中需要注意哪些问题?
8、 性能优化是游戏开发的关键。结合你的项目经验,谈谈在Unity项目中,主要从哪些方面着手进行性能优化(可以包括CPU、GPU、内存、资源等)?你在“丧尸末日”项目中做了哪些具体的优化措施?
9、你提到使用了UI管理器。请详细说明你的UI管理器设计思路:面板基类(PanelBase)定义了哪些公共方法或属性(如Show(),Hide(),OnOpen(),OnClose())?动态创建和销毁UI预制体是如何在管理器中实现的?如何处理面板之间的层级、遮挡关系?
10、你提到使用状态机复用文件设置不同角色动作。具体是如何做到复用的?不同角色(如丧尸A和丧尸B)可能拥有不同的动作或参数(如移动速度、攻击力),复用同一个状态机文件时,你是如何保证各自的状态逻辑准确性和灵活性的?是否通过覆写、参数化配置或子状态机实现?
11、在实习期间参与多款小游戏的“商业化重构”时,遇到的最大技术挑战是什么?(比如:广告API接入的复杂性?不同项目代码结构不统一?多款游戏同时维护导致混乱?)你具体是怎么分析这个问题并最终解决的?从中获得了哪些重要的经验教训?
作为面试官,一般情况下,我会根据简历写的内容去问,很多写的熟悉内容,就知道了一个皮毛,或者就是用了一下,就写熟悉,一问三不知,基本就会被pass掉,可以根据上面的情况自查一下,还有简历上面的其他知识点也可能会被问到,自查一下哪里不足。
此外,个人感觉实习经历太少,没有什么太多项目经验,也是会被筛选下去的风险。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|