金九银十,三面小厂Unity开发失利,我到底败在哪里?

59 篇文章 6 订阅
59 篇文章 1 订阅

##前言

大家好,又到了金九银十招聘季了,相信经过上半年疫情的影响,大家都已经开始对新的工作蠢蠢欲动了。

那么,作为一名资深的游戏开发er又该如何把握好这次的机会呢? 今天阿博就来给大家整理分享一下自己近期的面试内容。《请仔细看、仔细学》

刚入9月份的时候,打算出去面面试顺便看看行情,于是阿博从各大网站上搜索新的unity面试题,花几天看完之后信心满满,傲娇的走进了小厂公司面试!

结果呢,可想而知,正经面试的时候一个都没考到,还考的巨墨迹,给的工资还低。

于是我重新合计,一定是公司问题,还是多去面几家试试看…

这几天又开始了新一轮的面试,结果发现考的竟然都是之前网上流传的那些unity面试题,哈哈,感觉这次稳了! 哈哈哈…

嗯,这道我看过,哈哈 答案是…

卧槽! 我记不清了…

然后,对不起,各位,我又顺拐了!

其实面试的大部分我之前复习都看过相关的知识点,主要在于自己没有记牢,加上回答的时候描述的模糊不清…

后面又继续面了几家才发现问的基本也都是那些问题…

所以,大家还是努力复习好unity的基础吧。

哇!我好后悔啊啊啊啊!!!

不过,既然都说到这了,那我就来给大家梳理一下这次我遇到的Unity重点面试题型吧!

废话就不多说,直接整活,开始

================================================================================================

1.TCP和UDP的区别

TCP和UDP是TCP/IP协议簇中传输层的传输协议

Tcp是面向连接的,可靠地的,面向字节流的传输。TCP在连接时需要三次回收,在断开时需要四次挥手。TCP的链接是点到点的链接。Tcp收到的数据保证顺序,TCP有着拥塞控制,超时重发,丢弃重复数据,检验数据等机制。

UDP是面向数据包的,不可靠,包头简单,传输速度快。可以一对一,一对多,多对多,多对一发送,无需建立链接,没有拥塞控制,即使网络拥塞了也会不断的发送数据。目前在实时应用中,如游戏直播等,虽然UDP不可靠,但是得益于网速的提升以及可以自己编写重传机制来保证UDP的可靠性。

2.Http和Https的区别

简单来说,Http属于明文传输,不安全,https属于加密传输,较安全。

http是无状态的连接,通过铭文传输,信息可能被拦截,篡改等等。HTTPS是HTTP的安全加强版,HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 http 协议安全。

3.Animation和Animator的区别

Animation需要通过代码手动控制动画的播放和迁移。而Animator拥有有动画状态机,可以通过动画状态机来设置动画之间的状态,并且可以为单个动画设置脚本代码来控制事件。

4.MonoBehaviour的生命周期

基础的生命周期有

Rest->Awake->OnEnable->OnStart->Update->FixedUpdate->LateUpdate->OnDrawGizomo-OnGUI->OnDisable->OnDestroy->OnApplicationQuit

5.类和结构体的区别?使用环境?

结构体是值类型,类是引用类型。结构体存储在栈中,类存储在堆中,栈的空间小但是访问快,堆的空间大但是访问速度较慢。

结构体不能继承,不能创建默认构造函数和析构函数。结构成员不能指定为 abstract、virtual 或 protected。结构体的构造函数必须为所有值赋初值。

结构体一般存储较为轻量的数据,类一般存储具有较为复杂逻辑结构的数据。

使用环境:

(1)当堆栈的空间很有限,且有大量的逻辑对象时,创建类要比创建结构好一些;

(2)对于点、矩形和颜色这样的轻量对象,假如要声明一个含有许多个颜色对象的数组,则CLR需要为每个对象分配内存,在这种情况下,使用结构的成本较低;

(3)在表现抽象和多级别的对象层次时,类是最好的选择,因为结构不支持继承。

6.有一本牛津词典,现在输入一串字母组成一个单词,怎么样快速查询词典中是否有这个单词。

使用树结构来存储词典的单词,以字母为顺序分别放在相应的子树中。然后根据输入将字母从左到右分级并根据树的结构依次查询。

7.在一段文本中,有许多"{}“和”[]“和”()",判断这段文本中的括号是否使用正确?

if(sss){

asaasdasdas}是合法的。

if(asa

{}是非法的。

使用栈的结构进判断,将所有括号依次入栈,当一次入栈是右括号时判断之前的栈顶是否是对应的左括号,如果是说明合法,将之前的左括号和现在入栈的右括号都出栈。然后继续将新的括号依次入栈,当有一次入栈非法即可判定非法,或者知道最后全部判定合法则判定该文本合法。

###9.栈和堆谁比较快?为什么?

面试官问区别还答出来了,问谁比较快的原因就懵了。。

(1)栈有专门的寄存器,堆是随机内存。

(2)栈是在一级缓存上运行的,而堆是在二级缓存上运行的。

(3)访问栈上的数据只需一次,而访问堆上的数据需要两次,先访问栈,再访问堆。

###10抽象类和接口的区别?

抽象类和接口都不能实例化。

抽象类可以有抽象的的方法和未抽象的的方法,可以通过子类来重写。抽象类主要是子类的通用结构。

常量、字段、运算符、实例构造函数、析构函数或
类型、不能包含静态成员。接口不能有实现的方法。接口主要是作为规范来使用。

###11.值类型和引用类型的区别?

###12.Update和FixedUpdate的区别?

###13.常用的数据结是?

###14.对象池使用什么数据结构构建?

###15.我回答用List后面试官就不干了,非要问我为什么不用字典。
(当时的想法:人家Unity官方大会都用的List,你非要我用字典。。)

然后问:List和队列的区别?

队列从队尾,队首和中间出队的区别是什么??

先说字典,其实本意上是差不多的,我的想法是在轻量级的对象池情况下,直接将所有物品存储在对象池中,取出的时候for循环遍历,查找相同名字时就可以取出。

面试后我查询字典对象池才明白面试官的意思。

private static Dictionary<string, ArrayList> pool = new Dictionary<string, ArrayList>{ };

通过一个字典维护所有对象池,根据名称种类来直接从分类好的数组列表中取出一个即可。也可以使用队列。

###16.协程和线程的区别?

17:栈和堆,谁比较快,为什么

栈:Stack,容量较小,由内存维护,申请速度较快,但不受程序员控制。主要存储代码执行或调用的路径。栈只能从最顶层取。栈中数据被调用完毕后会被清除。

堆: Heap,容量较大,使用方便,申请较慢但容易产生内存碎片。堆负责保存对象和数据的路径。堆可以从任意位置存取。堆的数据被调用完毕后不会被清除,只有系统执行垃圾回收时才会清除没有引用的数据。

值类型数据总是被放在他被声明的地方,比如在类中声明的全局值类型,类是引用类型,会被放在堆中,因此类会被放在堆中,进而值类型也会被被放在引用类型中。而如果是在方法中声明的局部值类型数据则会被放在栈中,因为方法会被放在栈中。

指针,在c#中,引用类型是指此类型数据是通过指正来引用的,指针是它指向引用类型,指针可以被放在栈中或堆中。

嗯哼!这些题型大家都感觉咋样,如何?

如果连这些都还没掌握好,大家就贸贸然去面试就得多注意了!

多半是去给人家HR送KPi的,浪费时间,再面试不上,心里的打击可就不是一般大了啊!

所以,量力而行,重头开始好好复习吧!

这里,也给大家分享一份我自己整理的unity实战面试开发合集:
以及爆款的项目实战合集:image.png
关于游戏服务器开发的一些整理的资料:

今天特例免费分享给大家了,希望大家也都能早日找到心仪的工作,迎娶白富美,走上人生巅峰!

那阿博阿博,怎么才能拿到面试资料啊?

嗯!忘记说了,哈哈,点赞后评论区留言或私信:面试 就可以了,再说一遍点赞、评论私信就OK了!

那今天的面试分享就到这里了,过两天再给大家出个关于Cocos的,还有还想看的朋友可以点关注,不迷路

下篇再会,敬请期待!

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值