社招 散爆网络 二面面经 unity客户端开发
已oc,打算接散爆offer了
顺利进入二面,分享一下拷打过程,面试官水平很高,面试的体验也很不错
- 项目经历,主要负责哪些模块的开发(功能模块和UI界面,也做工具)
- UGUI有哪些优化方向(主要讲的合批、text少用outline、层级尽量简单、减少canvas rebuild)
- 开发一个背包系统,有哪些优化方向(循环滚动列表、image和text的mesh尽量不要重叠、图集、数据优化 短路ing)
- C#的gc(Mark-Compact 标记压缩算法,讲到这里面试官就觉得ok了)
- C#虚函数(担心答的不好,转到了c++的虚函数,简单讲了下就过了)
- C++中空类有多大(1),如果有虚函数有多大(4,因为虚指针,32位下的sizeof=4)
- unity中是如何调用代码里的awake、update这些函数的(答的不太好,答的是反射+消息机制,不是很满意这个答案)
- 红黑树和二叉平衡树的区别(简单答了下红黑树的特性,讲了下左旋右旋,对比了一下各类操作的时间复杂度)
- C# dictionary底层原理(entry结构体+hashtable,讲了下底层是拉链法的hashtable)
- 快排原理(经典哨兵,选择基准,找大的和小的,交换,继续,相遇的时候交换哨兵和相遇点,时间复杂度)
- 设计模式用过哪些(单例、工厂、抽象工厂、观察者)
- 单例模式在多线程下安全吗(饿汉安全,懒汉可能出现同时实例化多个的情况)
- 场景题 塔防游戏,塔的攻击范围内有几万的敌人,需要选择血量最低的地方单位进行攻击,如何优化(没有相关经验,但给出了个人认为可以优化的几个点,也有没提到的地方)
- 塔有攻击cd,把计算放到cd过程中做
- 塔选择中攻击单位后只有两种情况会取消攻击,单位死亡和单位超出攻击范围,选中单位后没有触发这两个条件就不必计算
- 攻击cd中可以计算出哪些单位会在下次攻击离开这个范围,可以忽略不去计算
- 分帧计算,攻击cd的帧中对单位取余,每次计算1/n的单位
- JobSystem并行计算
- 攻击距离不用开方的方法计算,选择距离的平方(这个忘提了,made,真是到处都在考浮点数问题)
- 考虑ComputeShader(不熟,没提,怕提了被问,项目主程有研究过,给大家讲过)
反问环节(gameplay发展方向、开发语言、在研项目和运营项目的区别)
希望能顺利通过,面试上也有不足的地方,还得再多补补知识点
#散爆网络##社招##面经##Unity 3D#