MIL17——模拟面试题
MIL17——模拟面试题
C#
- 递归函数是什么?请用一句话总结
- 在编写递归函数时,最需要关注的两点是什么?请说出你自己的理解
- C# 中如何在函数中返回多个返回值?(至少说出3种方法)
- 二分查找(折半查找)的原理是什么?
- 在游戏开发中,我们可以利用数据结构中的树参与哪些功能的制作?(至少说出 3 点)
Unity
- 你之前做过一些项目,那么一般美术同学提供给我们的美术资源,一般分为哪几类?
- 美术同学提供给我们的模型数据中,包含哪些关键数据?(至少说出 3 点)
- 游戏项目中,运行时主要占内存的内容有哪些?(至少说出 5 点)
- 游戏项目中,主要消耗性能的内容有哪些?(至少说出 3 点)
- 网络游戏中,有一个数据统计界面,这些数据是由最近 1000 场战斗计算出来的平均数据,
你认为以下处理方式合理吗?如果不合理,应该如何改进?
我们通过向后端请求这 1000 场战斗的数据,然后在客户端计算相关平均数据,更新显示到统计界面上
答案
C#
-
递归函数是什么?请用一句话总结
递归函数就是在函数定义中使用自己的函数
-
在编写递归函数时,最需要关注的两点是什么?请说出你自己的理解
- 结束条件:在什么情况下递归会结束,否则会死循环
- 问题规模的减小:递归函数通过自身来解决问题的规模,每次递归都应该将问题分成一个或多个更小规模的子问题,直到达到结束条件
-
C# 中如何在函数中返回多个返回值?(至少说出 3 种方法)
- 数组等容器
- 结构体或类自定义数据结构
-
out
参数 - 元组
-
二分查找(折半查找)的原理是什么?
在一组有序(升\降)的数据中查找一个元素时,将目标元素和查找范围的中间值做比较
- 若
目标 == 中间值
,查找结束 - 若
目标 != 中间值
,将目标分到较大/较小的一组 - 通过分组,可以将查找范围缩小一半,再新组中重复刚才的步骤,直到找到目标
- 若
-
在游戏开发中,我们可以利用数据结构中的树参与哪些功能的制作?(至少说出 3 点)
-
场景中对象的关系
比如 Unity 中场景上的对象通过树形结构建立父子关系,可以方便我们查找对象,确定对象的层级关系等等
-
行为树 AI
-
资源管理,资源之间的层级结构可以靠树建立
-
技能系统,比如技能树的表现
-
随机地图生成,比如“肉鸽”游戏中的随机地图,地图中的关系可以用树建立
-
任务系统,比如游戏中的任务面板中的任务清单
-
碰撞检测,碰撞检测的底层一般会采用四叉树或八叉树来加速碰撞检测
-
Unity
-
你之前做过一些项目,那么一般美术同学提供给我们的美术资源,一般分为哪几类?
- UI 资源
- 3D 模型资源
- 特效资源
- 2D 图片资源(角色、道具、背景图、过场原画等)
-
美术同学提供给我们的模型数据中,包含哪些关键数据?(至少说出 3 点)
- 顶点
- 法线
- 切线
- UV纹理坐标
- 纹理贴图
- 法线贴图
- 骨骼
等等
-
游戏项目中,运行时主要占内存的内容有哪些?(至少说出 5 点)
-
代码相关:
- 代码中预加载的数据(比如数据表中加载出来的数据)
- 代码中的成员数据(执行逻辑的代码中的相关成员)
-
资源相关:
-
模型
- 模型数据
- 纹理贴图
- 动画数据
-
2D
- UI
- 各种游戏图片(角色、道具、背景等等)
-
其他
- 音效
- 特效
-
-
-
游戏项目中,主要消耗性能的内容有哪些?(至少说出 3 点)
- 图形渲染相关
- 物理引擎
- 骨骼动画
- 资源加载
- 寻路算法
- 网络通讯
- 常规游戏代码逻辑
-
网络游戏中,有一个数据统计界面,这些数据是由最近 1000 场战斗计算出来的平均数据,
你认为以下处理方式合理吗?如果不合理,应该如何改进?
我们通过向后端请求这 1000 场战斗的数据,然后在客户端计算相关平均数据,更新显示到统计界面上不合理,应该让后端计算好,前端需要数据时请求获取计算好的数据后更新到界面上即可,无需前端来进行计算处理
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 文KRIFE齐的博客!