U3D记腾讯面试经历
作者:互联网
首先大厂的面试都是很漫长的,腾讯也不例外。此次面试经历了差不多三周左右时间。腾讯正常面试是技术3轮,hr 1轮。我这边是4次技术面试,hr 1轮。。最终通知面试已通过。。特此记录,希望能帮助大家~
第一轮:
面试官素质很高,让我对大厂有更好的印象。首先是自我介绍,然后说了点过往经历,因为他们是虚幻开发所以问了些C++的知识。。之前是一点没用过。后来发现其实问的也不是很难,比如C++的虚继承与普通继承的区别。。但面试官看我经历觉得就这么挂了太可惜了然后就说推荐给Unity项目组了。
第二轮:
同样简单自我介绍。面试官看到我的简历,他就说我对你算法很感兴趣,然后就说了很多算法的事情。就拿我怎么实现碰撞,寻路怎么进行优化以及各个寻路的应用场景,还有怎么做的行为树探讨了一下。然后问了下UI的outline怎么优化,这块没做过,但我知道outline额外画4次,我就简单说了下。面试官可能知道我是看过里面原理的。然后我就简单说了下,思路是可以搞个外扩的贴图,用边缘算法只画出轮廓,然后拿这个和之前的文字或者贴图叠在一起。。我也不知道对不对。但可能也没那么重要吧。然后面试官又问了一下,想实现周边模糊,中间清晰的shader。。模糊的原理很简单,就是某种形式的卷积就行。然后就是搞个知道距离uv = (0.5,0.5)的函数,让他离得进的数越小,离得远的数越大。差不多类似 max(abs(x-0.5),abs(y-0,5)) * 2。面试官对此觉得还行。。然后就顺利通过了。
第三轮:
这次个人感觉是个技术专家,问的东西很细。一样自我介绍,然后就帧同步的问题问了很多。
1.你们为什么要自己做物理模拟,用unity的会有什么问题?
这个就涉及到float了,不同平台计算结果不一样,如果用unity自己的,有可能算的不一定一致。然后就模拟物理简单说了下,其实原理不复杂,我们的游戏场景主要就是怪物是球体基地是矩形而且就怪物会动,处理球与球的运动碰撞和检测球与矩形的碰撞即可。我们对待碰撞方式也简单,碰到了后出生的怪物不走了,没做复杂的动量碰撞之类的其实理论上也能做,但实际效果足够。
2.技能系统怎么做的?
这个我确实没做过mmo不知道人家怎么做的,但本着组合大于继承的原则,我就说想象我们的技能是个轴,在轴上任意添加各种触发器。当使用的时候相当于这个轴在播放,播放相应的帧触发不同的触发器。但我当时说的不太好,让他以为我们是拿动画推导这个轴的运动。然后就说这么做也没有做到逻辑与显示分离。这块解释了很久,可能确实经验差了点哈哈。
然后对方问了句,你们的动画是怎么切换的?老实说我没太懂人问的点是什么。我就说了句CrossFade。然后就过了。
3.buff怎么做的?
这个我们是每个角色身上也有个buff字典。每次轮训的时候也会走这个buff,这个buff同样也是有很多触发器,有刚添加时,有攻击时,有被击时,有循环到某个时刻,移除时等吧,也是个轴(我觉得理解成轴开发比较简单,不知有高人有何更好地方式可以交流)。每个buff呢除了基础数值变化,还有额外属性变化。比如石化不能动,眩晕不能动等。这块没办法公式化,只能给人物添加几种状态比如 不能动,不能打,不能施法,不能后退等。然后每个状态用一个int来表示叠加层数,0表示没有。当然我这么说也不能体现出做战斗系统的复杂程度,实际中远远比这些复杂,这个就每个项目每个程序员可能都有自己的理解。
4.问了下kcp原理
这个百度说的很全面,但如果只是这样,那还是没什么优势。当时我是研究过源码写了ppt,然后我就说出来。当我说完以后,他问了一下你知道kcp的消息预测吗?这个我没听过,所以不知道。
5.问了下assetbundle架构
这个就把项目的说出来了。然后他问了下,如果我有个资源是异步加载时,又同步加载怎么处理?这块之前遇到过,如果一个bundle加载2次,unity报错。但异步加载不是可控的,所以我们的做法是同步加载。。我想面试官问的核心点是加载2次报错。
6.navmesh原理
把我了解的说出来了。。(我现在的水平是寻路啊,算拐点之类的明白了,但导航图没完全搞明白怎么生成的以及细节)
7.项目优化
这个就根据经验把之前的项目优化点说出来就好。。额外我说了下,我会动态图集,一些很小的写代码的点(见上篇文章)。
8.有没有想问的
我就问了下他们项目怎么做的同步。。可能因为商业机密,对方没咋说怎么做。主要就说了句,我们的分离是完全的分离,脱离引擎是可以跑在服务器上的。(其实想想我的架构也可以这么跑,只不过我没说好 哈哈)
老实说那天,我都觉得挂的概率90%,都想到HR通知没过的场景。没想到还过了。哈哈。
第四轮:
同样也是技术,这回可能是个更高级别的大哥。但问的难度确实没第三轮那么细致。聊得时间也不长40分不到,最后面试官说了句。。我看你经验挺丰富的。。(窃喜思密达)
第五轮:
HR面试,基本上就是唠家常了。问问职业规划,对腾讯怎么看的,对项目怎么看的,对自己的技术有什么打算,对身边的人怎么看的之类的,愿不愿意来深圳,有没有什么问题。
过了1天吧,HR通知我面试通过了(撒花✿✿ヽ(°▽°)ノ✿)。。老实说我面之前没想到会过,毕竟国内第一大厂肯定竞争的也多。
总结一下这次会过的原因:个人觉得运气占大头吧(70%)。。剩下30%就是我能把我之前做过的事情讲清楚(这个可能每个人都提前准备下比较好),然后就是会一些可能很多人别人没研究过得技术。。
这里有个遗憾,他们招的是去深圳,我很担心我媳妇异地的事情,所以只好拒绝了。等今年好好搞搞虚幻吧,搞搞C++,再把计划搞得技术点研究研究,来年在试,加油!
标签:怎么,面试官,U3D,然后,面试,腾讯,buff,加载 来源: https://blog.csdn.net/qq_25978293/article/details/122644326