柠檬微趣 秋招 -- Unity客户端开发 二面

面试官太有实力了,问的太深了[哭惹R][哭惹R],因此问题也忘得差不多了:

Unity部分:

1. 第一个2D游戏的游戏框架是自己搭的吗(是的)

2. 资源加载怎么做的,什么接口(LoadFromFile,面试官说是Resource.Load,[哭惹R]我现在才反应过来问的不是AB包[哭惹R])

3. Xlua原理(标记Hotfix-》桥接代码-》lua语言替换)。

4. CSharp和Lua怎么交互的([哭惹R]不会[哭惹R])

5. 第二个3D游戏的状态模式和工厂模式怎么设计的

6. 对象池怎么设计的

7. MVC怎么设计的

8. 单例模式是什么,哪些会用到

9. 协程是什么,哪里用的(我一个函数是敌人会一直走向主角,用的协程)。

10. 为什么用协程而不是Update? ([微笑R]最后的结果是都可以用,面试官说协程也是一种update)C++(这里更是重量级):

11. 多态(静态多态,动态多态)

12. 编译器怎么识别重载函数的,为什么不识别返回值,识别参数和函数名([哭惹R]不会[哭惹R])。会将函数名,参数拼接起来识别(类似序列化吗), 差不多。

13. 虚函数表存的是什么(函数信息和type_info[哭惹R]其实是函数地址[哭惹R]),虚函数表什么时候生成(编译期)。

14. 一个类有虚函数,有int_32值,32位系统下内存占多少

15. 你知道函数memset吗,可不可以用memset将该对象置为0([哭惹R]我开始说的不可以,可能虚表指针受保护[哭惹R])。

16. 我怎么拿到虚表指针呢(取首地址)

17. 有一个复制函数,我将父类的虚表指针赋值给子类的虚表指针呢(可以,但是运行时有RTTI,应该无效)。所以前面的memset也可以用,将vtpr设为nullptr,只是没意义。

18. memcopy和memmove知道吗,如果内存重叠怎么弄(我开始说的移动后面的再移动前面的,卡了好几分钟。最后我说如果是数组就很简单,从后面开始赋值,结果是对的)

19. vector和map的erase区别(vector失效,map不),vector指向空吗?([哭惹R]回答是的[哭惹R]),他说会指向下一个,不能++。

20. 快排的过程,为什么是不稳定的,举一个例子(5,5,3,1,1)。

还有些忘了,后面肯定还有,想起来再补充,反正没有常规八股。

21. 手撕:顺时针旋转矩阵90°。这个当场写还真不简单,写了十几分钟,结果转反了。后面又改了5分钟才对。

全部评论
后续咋样了
点赞 回复 分享
发布于 09-16 22:08 北京

相关推荐

会员标识
09-16 15:55
已编辑
电子科技大学 算法工程师
8.23投递,8.30笔,9.11一面,1h八股盛宴无手撕,平平无奇工作室。八股很细,有几个确实没想起来。面完眼神瞬间清澈了,还得巩固下。 9.15挂1.C++里有用过哪些STL的容器2.Vector和list的底层实现3.写一个快排用vector还是会list?为什么vector?4.vector查找的时间复杂度?怎么扩容?扩容时怎么拷贝?5.有了解过移动构造吗?对比拷贝构造有什么区别?6.怎么实现用移动构造“拷贝”一个数组的元素?移动构造的具体实现7.C++怎么体现多态?8.重载怎么知道我要调用哪个函数?那假如函数名一样,参数列两个也一样,但是返回类型不一样,行不行?9.动态多态,如果父类没把它定义成虚函数,子类也去重写会怎样?使用上有何区别?10.快排时间复杂度?最坏时间复杂度怎么去优化?不允许考虑堆11.100万个玩家取前100个?替换堆顶后怎么调整堆12.英雄联盟这种游戏,局内那部分是用TCP还是UDP的?那TCP慢,体现在哪里呢?慢可能是什么导致的?13.快重传和超时重传 有什么区别14.C#的gc15.C++编译流程?那C#编译出来是什么?16.协程和线程的区别17.Unity中Update和FixUpdate的区别?为什么要分两个18.托管堆和非托管堆的区别19.什么是死锁?死锁避免如何解决?后面开始问实习,结果听我陈述完也没问啥。20.UGUI有什么优化的方式?(X)(本身我的实习和项目其实沾UGUI的东西几乎没有。所以没怎么准备,有看一点八股但不熟)(打图集,动静分离,Canvas合批)21.一般要怎么做才能合批?(?)22.帧同步和状态同步的区别?什么情况下游戏不适合用帧同步无手撕
查看22道真题和解析
点赞 评论 收藏
分享
评论
6
44
分享

创作者周榜

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