柠檬微趣 秋招 -- 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分钟才对。

全部评论

相关推荐

点赞 评论 收藏
分享
头像
08-15 16:35
已编辑
江南大学 Unity3D客户端
点赞 评论 收藏
分享
评论
3
12
分享

创作者周榜

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