叠纸一面(2021.11.12)

  1. 自我介绍
  2. 看你有用C#实现过Lua,那你有去看C语言版本的Lua源码吗?
  3. 对Lua优化,按照你对源码的了解有什么理解吗?
  4. 为什么对LuaTable做预填充能起到优化作用?
  5. 你自己实现Table预填充优化是大概怎么实现的?
  6. 有什么办法能够检查出Lua代码中全局变量的使用?
  7. 在Lua代码中使用Env的情况下如何检查全局变量的使用?
  8. 你对Lua的使用情况是怎么样的?
  9. 热更新方案Lua和ILRuntime的差异与优劣
  10. 你认为Lua维护起来很痛苦,那有没有想过做什么工具或其他方式来改善?
  11. ILRuntime如果查出内存问题有什么优化方案或者工具?
  12. 简单介绍下你写的Json库
  13. 你是怎么提高你的Json库性能的?
  14. 讲下你在工作中对代码内存分配和性能优化的见解
  15. 对匿名函数的内存分配理解?
  16. 简单介绍下你的资源管理框架
  17. 卸载Bundle时使用Unload(true)还是Unload(false),这两个区别是什么?
  18. 简单介绍下你写的红点系统
  19. 怎么处理一个节点的子节点被取消激活,父节点依然需要显示的问题?
  20. 一旦有红点变化,你会把整个红点树都刷新一遍吗?
  21. 红点树的构建过程是按照路径构建的吗?
  22. 按照路径构建的过程,路径字符串的比较之类的你是怎么优化的?
  23. 介绍下你做的组件自动绑定工具
  24. 介绍下你现在项目的换装是怎么做的
  25. 骨骼动画的原理
  26. 如果让你用数据结构来表示AnimationCurve,这个数据结构应该包含哪些内容?
  27. 具体说下动画关键帧包含哪些信息?
  28. 怎么表示曲线呢?
  29. 简单介绍下你在Lua层实现的简易Timeline
  30. 策划怎么编辑你这个Timeline?
  31. 如果要做一个编辑器工具让策划可以预览你有办法做吗?
  32. 用自定义track跑Lua的数据是吗?
  33. 平常你自己工作内容以外会有什么渠道去学习新知识吗?
  34. 网络同步可以讲下你最近了解的东西吗?
  35. Socket底层有了解过吗,能介绍下三次握手和四次挥手吗?
  36. 为什么会有三次握手?
  37. 介绍下UDP的特点

通过,全程基本都是我在说,属实累死

腾讯一面(2021.11.13)

  1. 自我介绍
  2. 你工作主要负责哪一块?业务还是偏底层的引擎
  3. C#值类型与引用类型的区别
  4. 说下值类型装箱过程
  5. 反射用过吗?一般用在哪一块?反射的原理是什么?
  6. 类的元数据在哪个阶段生成?
  7. 接口和抽象类有什么区别?
  8. C#弱引用有用过吗?
  9. 密封类和密封方法知道吗?
  10. C#的容器List和字典知道实现原理吗?
  11. Lua面向对象怎么实现?
  12. 说下MonoBehaviour脚本的生命周期
  13. 说下协程和线程的区别
  14. 组件隐藏掉协程会停止吗
  15. 说下渲染管线的基本流程
  16. 说下UGUI的遮罩组件
  17. 普通的Mask组件有哪些缺陷?
  18. 你做UGUI优化的时候有哪些常见的优化
  19. 用过哪些常见的设计模式?

通过,这问题问的感觉像是在面外包

叠纸二面(2021.11.15)

  1. 职业规划
  2. 你对框架的理解
  3. 你自己做过比较值得说的框架的思路
  4. 你在写Json库的时候怎么优化内存分配的?
  5. 你是怎么通过生成Json解析代码避免值类型装箱开销的?
  6. 你这个组件绑定工具的意义是什么?
  7. 你在GamePlay上做过什么值得说的吗?
  8. 有做过UI相关的组件或框架的东西?
  9. Mono内存的特点可以简单说下吗?
  10. 你在实现框架时会怎么去避免Mono的内存问题?
  11. 为什么栈上内存申请比堆上内存申请快?
  12. 你平时一般在哪里学习技术?
  13. Lua虚拟机基于栈还是基于寄存器?
  14. 如何在Lua源码层面加一个类似Vector3的新内置类型?对Lua源码改动量有多大?

通过,给了个很不错的待遇,比一面轻松很多,面试官也会就问题展开讨论,遇到自己出错的地方也会说自己会下去研究一下

腾讯二面(2021.11.15)

  1. 自我介绍
  2. 最近工作上的内容
  3. 介绍下你做的UI优化工作
  4. 对比过Mask和RectMask2D的CPU开销的不同吗?
  5. 说下这两种Mask的实现原理
  6. 你知道有哪些UIRebuild的Dirty类型?
  7. 你的UIRebuildLogger怎么处理UI名字相同的情况?
  8. 为什么不考虑直接在UGUI源码层做修改,直接在Dirty的时候记录整个堆栈?
  9. 技能CD变化导致的Rebuild应该怎么优化?
  10. UI合批判断是否重叠是以什么为标准?
  11. 假设现在需要你做个工具在编辑器下显示UI深度,你会怎么做?
  12. 这个工具假设现在已经有N个UI了,现在来了个新UI,要判断和N个UI是否重叠,你觉得它是个什么过程?算法时间复杂度是多少?
  13. 角色头顶血条Hud如何优化?
  14. 血条中的文字和图片能合成一个drawcall吗?
  15. 介绍下你做的资源管理框架
  16. 你的资源管理框架需要手动调用卸载接口吗?
  17. 怎么查出漏卸载的情况?
  18. 有做过一些资源层面的优化吗?比如图集的优化
  19. 向量a和向量b叉乘,得到的新向量是怎样的?
  20. 写C#时怎么样优化GC?
  21. 说下堆内存和栈内存的区别
  22. 你对自己职业规划是怎么样的?
  23. 最近有了解什么方向的技术吗?
  24. 了解哪些网络同步的方式?
  25. 平时会玩哪些游戏?
  26. C++有使用过吗?

通过,问的问题比tx一面好很多,会根据你的回答延伸出新问题出来

腾讯三面(2021.11.18)

  1. 讲下现在所做的工作

  2. 你在现在维护的项目主要做哪些东西?

  3. 你最擅长的部分都有哪些?

  4. 你觉得你本身的技术最适合哪些?

  5. 你做过哪些框架?

  6. 资源更新时是怎么做对比的?

  7. 资源清单信息里有些什么内容?

  8. 为什么对比的时候要用字节长度?

  9. 如果字节长度相同或者不同,你是怎么处理的?

  10. 资源清单通过什么去请求?

  11. 资源清单没请求下来你怎么处理?

  12. 不会做下载失败后的额外措施吗?

  13. 重试也失败怎么处理?

  14. 怎么保证资源清单文件下载下来是对的?

  15. 如何处理强更资源和非强更资源?

  16. 资源下载到一半退出游戏你怎么处理?

  17. 了解UnityWebRequest以外的其他断点续传的手段吗

  18. 你怎么确保Asset和Bundle已经卸载掉?

  19. 你只记录了资源和资源间的引用关系吗?

  20. 所有资源的引用计数是框架在维护?

  21. 在正确的成对调用了Load和Unload,有没有可能还出现了泄露的情况?

  22. 出现资源泄露了怎么去检测?

  23. 出现异常导致资源卸载失败怎么去检测?

  24. 还有做过其他框架吗?

  25. 最近业余有在学什么吗?

  26. 网络同步分哪几种?

挂了,感觉面试官并没有认真看简历,挺会挖细节的,不过提的有些问题并不适合电话面试,需要面对面画图和看代码才能讲明白