Unity26届实习面经

时间 6.13
base 成都

自我介绍
一、问项目
1.帧同步和状态同步区别
2.帧同步要注意哪些,出现不同步原因,是否遇到过
3.大概怎么做预测,插值,校正的
4.为什么逻辑层和表现层要分开
5.关于通信的心跳机制检测怎么做的
6.通信用的什么协议
7.怎么实现重连
8....好像还有一两个不记得了...

二、八股
1.TCP和UDP区别
2.怎么解决分包黏包
3.UDP是面向报文段,TCP是?
4.常用数据结构
5.数组和链表区别
6.怎么实现一个链表
7.数组和list区别
8.反射
9.抽象类和接口
10.装箱拆箱
11.GC 触发、原理以及如何避免
12.animator和anination
13.四元数和欧拉角
14.结构体和类
15.点乘和叉乘
16.协程和线程区别 协程在哪个线程执行

好像差不多就这些
只有一面 面试通过
效率高 当天hr沟通完发offer已接
#unity客户端# #面经#

全部评论
佬面的哪个公司
点赞 回复 分享
发布于 06-18 17:49 四川

相关推荐

找实习期间看了不少大佬们分享的面经,收获不少,牛客上好像没什么银之心的面经,所以简单分享下自己的经验。bg:985本,211硕,简历包含一段小厂的unity实习,一个UE的基于GAS的ARPG玩具demo,4月底开始投简历。----------------------------------------------------------------------------------------------Time Line:    5.23 -- 笔试    5.29 -- 1面    5.30 -- 2面    6.3 -- 3面    6.6 -- hr面    6.16 -- oc---------------------------------------------------------------------------------------------    笔试:4道算法题    1.给定一个排列,求出所有子区间的中位数之和    2.给定两个字符串a,b,将b插入a使得字符串为回文串,求有多少种插入方法    3.给定两个长为n的整数数列A,B,每次可以从A的左或者右端取一个数字,B按顺序取,假设第i次取走的数为ai,则第i次取走的价值为bi*ai,求最大价值和    4.给定两个长度相同的字符串s,t,每次可以将任何位置的任何字符移动到字符串末端,求至少需要多少次操作可以市s变成t?---------------------------------------------------------------------------------------------       面试体验很好,几个面试官相当专业,反问环节回答得很认真,不敷衍,收获良多;hr小姐姐推进流程和回复问题也很及时。------------------------------------------------------------------------------------------------一面(55min)    1、自我介绍    2、常规的C++八股拷打,这里推荐知乎 不羁的游侠 的 《计算机基础篇》 ,我自己面试过程中遇到的大部分c++八股都可以在里面找到。    -----没答上来或者答得不好的几个问题:    (1)一个子类继承了两个父类,两个父类中有同名的虚函数,子类中重写此虚函数,重写的是哪个父类的虚函数?    (2)类模板的声明和实现可以分别放到头文件和cpp中吗,为什么?    (3)执行exe,main函数是最先执行的吗?如果不是,举几个在main函数前执行的例子。    3、问:你的项目里有用行为树实现的敌人AI,有看过源码吗?               答:没有,不过知道AI寻路的一些过程和原理,(然后balabala开始讲NavMesh生成网格体的过程和A*算法)    4、问:了解过动画系统中动画动起来的原理吗?               答:动画的载体是骨骼,动画序列由时间轴上的一系列关键帧组成,每个关键帧存储了每根骨骼的变换信息,非关键帧的骨骼变换信息通过插值等方式可以计算出。          问:介绍一下UE的动画状态机、混合动画、叠加动画?    答:知乎 TurBo强  的《UE 动画系统框架介绍及使用》;          问:知道蒙皮动画吗?   答:没了解过          问:看过动画系统源码吗?   答: 没有    5、手撕算法题:            (1)字符串加法,常规题            (2)追加要求:两个数可以是负数            询问面试官:能否拆分为两个正数的减法和加法的函数,计算前先单独处理运算的两个数的符号位,并调用相应的函数。            面试官回答可以,写了5min没写完,面试官表示时间差不多了,直接进入反问环节。----------------------------------------------------------------------------------------------------  二面(45min)    1、自我介绍    2、问:玩过什么游戏?              答:最近在玩 最后纪元 ,一个暗黑风格的ARPG游戏    3、问:这种ARPG游戏里,怎么对敌人造成伤害?              答:比如玩家发射一个火球,需要为火球添加碰撞体,敌人身上也必须具备碰撞体,同时实现接受伤害的接口,当火球与敌人碰撞时,触发hit或者Overlap事件,传递碰撞信息,其中包括敌人对象,拿到敌人对象后,调用接受伤害的接口。    4、问:怎么进行碰撞检测?              答:粗略检测的话,可以用包围盒等包围需要检测碰撞的对象,然后检测两个包围盒是否有相交即可。过程中可以通过四叉树、八叉树或网格加速结构,快速排除远距对象。不同划分区域保证不会碰撞的情况下,就能快速过滤与本物体不同区域的其他潜在物体碰撞。         问:包围盒和包围球间的范围检测哪种比较简单              答:包围盒和包围盒吧,只需要把各个顶点投影到坐标轴上。(好像不对,应该是球和球?)         问:球和球的范围检测怎么计算?球和盒的范围检测怎么计算?              答:(几何知识,大概画个图就知道了)   5、问:如果是近战攻击,怎么对敌人造成伤害?              答:和远程差不多,不过是需要在近战武器上添加碰撞盒,创建两个场景组件放置在武器的两端,作为box trace的起点、终点,挥舞武器的时候,在两点之间执行box trace。        问:怎么让box trace跟着武器动的?              答:近战攻击用一个动画蒙太奇实现,武器绑在角色手上的slot里,碰撞盒和起点、终点是武器的子组件,动画动,武器跟着动,子组件也跟着动。    6、问:项目里有实现自动寻路吗?有了解过吗?              答:(一面的时候也问道了)NavMesh生成网格体的过程+A*算法。         问:如果场景中有移动的障碍,怎么处理?               答:不太清楚 ,不过我猜可以先划分区域,只更新移动物体影响的区域,更新寻路网格体时,把移动障碍和其移动覆盖的区域整体标记为障碍物。         问:需要重新烘焙吗?             答:需要。    7、问:还做过其他什么东西吗?             答:还做了一个简单的多人游戏项目,不过做得不是很好         问:网络游戏用什么协议             答:UDP,不过通常会将在其往TCP的方向改,即可靠的UDP,(序列号与确认,丢包重传、超时重传、滑动窗口、拥塞控制)    8、无手撕环节---------------------------------------------------------------------------------------------------    三面(30min)    三面大部分时间聊聊天了,问了一些简历上提到的东西,比如MVC的难点,ui的MVC和工程上的MVC的关系等,有三分之一的时间是面试官在给我讲解反问环节问的问题,醍醐灌顶,可惜忘记录音了...-------------------------------------------------------------------------------------------------
查看25道真题和解析
点赞 评论 收藏
分享
评论
3
13
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务