找回密码
 立即注册
查看: 385|回复: 0

2022最新Unity应届生面试题,附答案+面试手册!

[复制链接]
发表于 2022-2-28 09:37 | 显示全部楼层 |阅读模式
完整版手册详情介绍:2022最新Unity面试题,推荐这份3万字面试手册!

第一部分 判断题

1 C#支持继承多个类,达到重用代码功能的效果。 (×)
2 修改Renderer的sharedMaterial,所有使用这个材质球的物体都会被改变,并且也改变储存在工程里的材质设置。 (√)
3 Unity中可以创建子线程,并在子线程中直接修改UI对象。 (×)
4 Unity不支持在协程中嵌套调用协程。 (×)
5 C#不同命名空间中可以存在相同类名。 (√)
6 Unity会自动为MonoBehaviour子类的public变量做序列化。 (√)
7 每个枚举成员均具有相关联的常数值,可以设置为负数常数。 (√)
8 只带有 get 访问器的属性称为只读属性,无法对只读属性赋值。 (√)
9 protected成员只能被本类内部访问,无法被子类直接访问。 (×)
10 父物体发生Transform变化的时候,子物体跟随一起变化,但是子物体发生变化的时候,父物体不动。 (√)
第二部分 问答题

1、C#中的委托是什么?

delegate int MyDelegate(int value); //声明委托类型
C#所有的委托派生自 System.Delegate 类,委托是存有对某个方法的引用的一种引用类型变量,委托变量可以当作另一个方法的参数来进行传递,实现事件和回调方法。
有点类似C中的函数指针,但是又有所不同。在C中,函数指针不是类型安全的,它指向的是内存中的某一个位置,我们无法判断这个指针实际指向什么,对于参数和返回类型难以知晓。
而C#的委托则完全不同,它是类型安全的,我们可以清晰的知道委托定义的返回类型和参数类型。
委托和事件:
本质区别:从定义上说,委托被编译器编译成一个类,所以它可以像类一样在任何地方定义,而事件被编译成一个委托类型的私有字段和两个公有add 和 remove 方法(有点类似于属性的定义)不过这两个方法都有一个参数,这个参数就是委托,所以,它只能定义在一个类里面。
event MyDelegate myevent; //定义事件
委托相当于一系列函数的抽象类,这一系列函数要求拥有相同的参数和返回值;而事件(event)相当于委托的一个实例,事件是委托类型的成员,委托可以定义在类外面,而事件只能定义在类里面。
事件使用 发布-订阅(publisher-subscriber) 模型。
发布器(publisher) 是一个包含事件和委托定义的对象。事件和委托之间的联系也定义在这个对象中。发布器(publisher)类的对象调用这个事件,并通知其他的对象。
订阅器(subscriber) 是一个接受事件并提供事件处理程序的对象。在发布器(publisher)类中的委托调用订阅器(subscriber)类中的方法(事件处理程序)。
为什么需要事件?
事件最常用的应用场景是图形用户界面(GUI),如一个按钮点击事件,菜单选择事件,文件传输完成事件等。简单的说,某件事发生了,你必须要作出响应。你不能预测事件发生的顺序。只能等事件发生,再作出相应的动作来处理。触发事件的类本身对怎样处理事件不感兴趣。按钮说:“我被点过了”,响应类作出合适的响应。
2、值类型与引用类型的区别?
3、接口Interface与抽象类abstract class的区别?
4.如何弱化代码依赖关系?
5、Unity实现跨平台的原理
6、四元数的作
7.什么是欧拉角?
8、Unity脚本生命周期与执行顺序?
9、讲讲你对Unity的协程的理解?
第三部分 场景题

1、现在打出的Android包启动闪退,应该怎么定位问题?
2、现在要开发一个点击屏幕开炮发射子弹的功能,说下你的做法?
整理了一份《Unity面试手册》,目前大约3万字左右,初衷也很简单,就是希望在面试的时候能够帮助到大家,减轻大家的负担和节省时间。
《Unity面试手册》包括以下知识点C#基础语法、C#面向对象、C#集合、C#异常、C#泛型、LINQ、委托、多线程、中级开发工程师面试题、Unity应届生面试题、游戏公司真题、Unity官方认证考试模拟、Lua面试题
废话不多说,本手册目前为第一版,后续慢慢也会陆续更新一些知识点,目前内容有以下板块:


完整版手册详情介绍:2022最新Unity面试题,推荐这份3万字面试手册!
1.基础语法

内容包括了c#的基础语法的应用,总计30到题目。这部分较为简单。
1、字符串中string str=null和string str=""和string str=string.Empty的区别?
2、 byte b = 'a'; byte c = 1; byte d = 'ab'; byte e = '啊'; byte g = 256; 这些变量有些错误是错再哪里?
3、string和StringBuilder的区别,两者性能的比较?
4、什么是扩展方法?
5、什么是装箱和拆箱?
6、用最有效的方法算出2乘以8等于几?
7、const和readonly有什么区别?
8、什么是强类型,什么是弱类型?哪种更好些?为什么?
......


2.面向对象

内容包括面向对象常见的题目,总计21道题目。可以复习一下class、函数、封装、继承、多态。
1、什么是构造函数?
2、class和struct的区别?
3、简述一下面向对象的三大特性?
4、构造函数是否能被重写?
5、抽象类和接口有什么区别?
6、接口是否可继承接口?抽象类是否可实现(implements)接口?抽象类是否可继承实现类(concrete class)?
7、什么是匿名类,有什么好处?
......


3.集合、异常、泛型、LINQ、委托、EF!

包括集合、异常、泛型、LINQ、委托、EF等常见的题目,总计43道题目!
1、 IList 接口与List的区别是什么?
2、泛型的主要约束和次要约束是什么?
3、如何把一个array复制到arrayist里?
4、List, Set, Map是否继承自Collection接口?
5、有50万个int类型的数字,现在需要判断一下里面是否存在重复的数字,请你简要说一下思路?
6、一个整数List中取出最大数(找最大值)。不能用Max方法。
7、如何创建一个自定义异常?
......


4. 多线程

包括多线程,线程和进程还有线程安全等相关知识点,总计20道题目。
1、描述线程与进程的区别?
2、Windows单个进程所能访问的最大内存量是多少?它与系统的最大虚拟内存一样吗?这对于系统设计有什么影响?
3、using() 语法有用吗?什么是IDisposable?
4、前台线程和后台线程有什么区别?
5、Task状态机的实现和工作机制是什么?
6、await的作用和原理,并说明和GetResult()有什么区别?
.....


5.Lua面试题

1、实现替换字符串"abcdefgh"中的"abc"为"ddc"?
2、ipairs和pairs的区别?
3、函数冒号与点的区别?
4、普通全局变量和static全局变量的区别?
5、请写一个带有不定参数的lua函数,并输出所有的参数?
6、热更新的原理是什么?
......



6.Unity游戏公司真题

1、Unity中碰撞器(Collider)和触发器(Trigger)的区别?
2、物体发生碰撞的必要条件?
3、CharacterController和Rigidbody的区别?
4、物体发生碰撞时,有几个阶段,分别对应的函数?
5、物体发生碰撞时,几种施加压力的方式,描述出来?
6、Unity3d提供了几种光源,分别是什么?
7、物理更新一般在哪个系统函数里?
8、简述一下Prefab的用处?


7.常见的Unity面试题汇总

1、什么是协同程序?
2、Unity3D中的碰撞器和触发器的区别?
3、物体发生碰撞的必要条件?
4、简述四元数Quaternion的作用,四元数对欧拉角的优点?
5、OnEnable、Awake、Start运行时的发生顺序?哪些可能在同一个对象周期中反复的发生?
6、如何安全的在不同工程间安全地迁移asset数据?三种方法
7、MeshRender中material和sharedmaterial的区别?
8、Unity提供了几种光源,分别是什么?
9、移动相机动作在哪个函数里,为什么在这个函数里?


完整版手册详情介绍:2022最新Unity面试题,推荐这份3万字面试手册!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-9-22 17:33 , Processed in 0.115614 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表