(代发)迈博元素Unity客户端开发实习面经
本渣渣同学2023年8月31日面试迈博元素面经,40分钟左右。
会带一些个人评价
面试官很温和,有些问题即使答不好,也给了我同学很多鼓励。 大家一起加油哦ヾ(◍°∇°◍)ノ゙
面试流程
先是自我介绍,然后开始问简历。
面试题
- 自我介绍时,你提到了你简历的两个项目,你这两个项目,有完全是跟着教程写的吗?
没有,全是自己写的
- 你是如何设计你游戏当中的需求的,然后开发的?
查看自己的游戏玩法逻辑,模仿实现
- UI框架是也你自己设计的吗?
紧张了,问的是不是,答的如何实现
- UI框架当中,读取时,UI面板预制体、UI面板类、UI面板事件类如何和绑定
面板信息json文件当中,存储着这些信息,在构造面板时,通过枚举类型从字典当中获取各个类的信息。
- 任务系统、背包系统、商店系统信息,都是用Json文件存取的吗?
是
- 为什么要考虑这么做?
如果写在代码当中,会使得代码很混乱,难以维护。使用json配置表配置使得在添加或删除面板时,只需要修改配置文件,添加枚举类型,做好UI预制体,不需要修改代码,易于扩展。
- UI框架当中,面板预制体保存的路径是固定的吗?
是,统一放在同一个面板文件夹
- 你这里写了MVC,说说MVC是什么
MVC主要是一种思想,MVC就是Model,View,Controller,即模型、视图、控制器。Model对应面板数据,View对应UI面板,Controller对应管理器
- 项目当中有限状态机是如何实现的
说了继承一个接口,然后子类实现函数,有进入、更新、退出等函数,通过FSM管理者管理状态切换。(这里答的比较乱)
- 有限状态机是完全自己写的吗?
网上有参考,虽说项目不是跟着教程写的,但是遇到困难时会去网上查找资料,学习如何解决。
- 说说你这个红点系统是如何实现的
观察到UI具有层级关系,某个UI更新,其父UI也需要更新,就想到通过树实现。叶子节点更新,更新父节点。
- 说说熟悉哪些设计模式
就说了三个,单例、观察者设计模式、简单工厂模式(可以直接说说设计模式是如何实现的)
- 泛型在你的项目当中哪里用的比较多
只说用了泛型单例,但是知道如对象池等可以做成泛型(没答好,两句就结束了)
- 说说你对泛型的理解
减少代码量,实现一种多态(两句就结束了....)
- 说说面向对象的三大特性
说了封装、继承、多态简单理解
- 刚刚你说继承是强联合,那如果让你用组合设计一个装备系统,你会如何设计
说了将一些共同的属性抽出来,然后就说自己了解的不是太清楚
这时候面试官开始鼓励了,说答得挺好的。
- 3D物体如何显示在UI中的一个Image的前面
刚开始说将canvas作为物体子物体,然后说想想,然后说渲染不同层级,然后说没考虑过这个问题......(可惜了,这是很常见的问题,没答出)
面试官给解释了一下
- 说说DrawCall优化
先是说了DrawCall是Cpu调用dc通知GPU开始渲染的一个步骤,刚要说DrawCall优化有哪些常用方法时,面试官就说,具体说说这一个渲染步骤
- 说说整个Cpu到GPU的渲染过程,尽量说细一点
了解的不是很清楚,大致知道是Cpu准备一些数据,然后通知GPU开始渲染。
(这里应该是问渲染流水线的第一阶段即应用阶段具体会发生什么事)
- 有点好奇你简历上写的“通过规避Update中实例对象减少DrawCall”是如何实现的。
这里说了下Update是每一帧调用
(这里简历写的有问题,“DC优化:减少Update中实例化对象、尽量使用JPG格式图片”和DC没什么关系)
- 那后面这个“尽量使用JPG格式图片”是什么?
说了JPG格式图片和PNG图片占用内存的大小区别(这个和DC没关系呐)
- 除了这个JPG和PNG,还有什么关于图片的DrawCall的优化方法
这里不太了解(这里可以说说打图集、调整UI图片和text层次啥的)
然后面试官提示了打图集,然后说简历有问题
- ScollView主要用在哪方面
这里说了ScollView配合GridLayoutGroup和ContentSizeFiter实现项目当中的背包滚动列表(这里大佬其实就可以引出无限循环列表是啥)
- Socket有哪些了解
这里说自己的服务器是开的B站视频,只是了解了大体逻辑,主要是编写协议,然后说了说socket的了解。
面试官继续说有没有更多关于socket和服务器的东西
这里说了第二个项目是通过消息转发的形式实现的同步,实现的不是很理想
- 说说帧同步和状态同步
这里说了自己对于帧同步和状态同步的简单理解,说帧同步容易反外挂
(这里是状态同步更容易反外挂)
- 你能说说帧同步和状态同步当中你最了解的一个,说说具体流程,比如谁来发送,谁来接收
这里说自己正在了解这方面的,具体的不太清楚
面试官说没关系,后面会了解到的
- 说说你的战斗系统和服务器的同步
这里说自己是通过消息转发实现的战斗,太快会导致崩溃
- 说说导致崩溃的原因
这里说了自己遇到的崩溃情况和理解的原因
- 服务器是放本地还是外部的云
放到本地
- 为什么放到本地的还会出现崩溃
放到本地为什么还会崩溃呢?你再去排查排查原因
好的
- 问了是否在校,校里面课怎么办,毕业论文怎么办
如实回答
- 有没有时间去实习?可以全职实习吗?
有,可以
- 对于薪资的要求
要求不高,贵公司应该能给个合理的薪资(毕竟)
- 有什么要问的吗?
问了可以转正吗?
有技术培训吗?
- 回去等通知,有offer了会oc