Unity游戏开发工程师面试题大礼包!!

Unity游戏开发工程师面试题大礼包!!

正在找工作以及近期即将开始找工作的朋友们,请过来吧~我很贴心,这次给你们准备了【面试题大礼包】! !

游戏引擎开发面试题_开发游戏引擎需要学什么_游戏引擎开发工程师面试

Unity游戏开发工程师面试过程中,肯定会出现一些常规的面试问题。 这部分分数正是求职者需要尽量不犯错误的!

相信勤奋的人在面试前都会去网上查找一些相关的面试题。 考虑到方便大家随时查漏补缺,本文为大家整理了共计20道面试题,涵盖真实游戏公司面试题&C#基础题&Lua面试题~推荐同学们赶紧收藏吧!

开发游戏引擎需要学什么_游戏引擎开发工程师面试_游戏引擎开发面试题

Unity 采访亮点

游戏公司面试问题

1. Unity中Collider和Trigger有什么区别?

回答

Collider有碰撞效果,

IsTrigger=false,

可以调用OnCollisionEnter/Stay/Exit函数

触发器没有碰撞效果。

isTrigger=true,

可以调用OnTriggerEnter/Stay/Exit函数

2、物体发生碰撞的必要条件是什么?

回答

它必须具有碰撞器和刚体属性或角色控制器。 事实上,角色控制器包括前两者。 另一个对象也必须有一个 Collider。 碰撞器分类:网格碰撞器、盒子碰撞器、胶囊碰撞器、球碰撞器、地形碰撞器。

3.CharacterController和Rigidbody

区别?

回答

Rigidbody具有完全真实的物理属性,

CharacterController可以说是一个有限的Rigidbody,具有一定的物理效果但并不完全真实。

4. 物体发生碰撞时,有几个阶段以及相应的功能是什么?

回答

三相

OnCollision进入/停留/退出功能

5.当物体碰撞时,描述几种施加压力的方法?

回答

rigidbody.AddForce/AddForceAtPosition,都是rigidbody的成员函数

6、Unity3d提供了多少种光源? 这些是什么?

回答

总共有4种,DirectionalLight、PointLight、SpotLight、AreaLight(用于烘焙)

7. 物理更新通常在哪些系统功能中进行?

回答

每绘制一个固定帧就会执行一次FixedUpdate。 与update不同的是,FixedUpdate是在渲染帧中执行的。 如果你的渲染帧效率较低,FixedUpdate 调用次数也会相应减少。 FixUpdate更适合物理引擎计算,因为它与每一帧的渲染相关。 更新更适合控制。

8. 移动摄像机动作发生在哪个函数中? 为什么会出现在这个函数中呢?

回答

LateUpdate 在所有更新完成后调用,更适合命令脚本的执行。 官网上的例子是摄像头跟随。 相机跟随是在所有更新操作完成后进行的。 否则,摄像机可能已经前进,但视角中没有角色的空框。

9.简述Prefab的使用?

回答

游戏运行时实例化,prefab相当于一个模板,对你已有的材质、脚本、参数进行默认配置,方便以后修改。 prefab打包的内容简化了导出操作,方便团队沟通。 。

C#基础问题

1.什么是构造函数?

回答

概念:构造函数的方法名与类型相同,无返回类型

功能:完成类的对象初始化

2.类和结构有什么区别?

回答

相似之处:【都可以实现接口】

不同之处:

1.class是引用类型,struct是值类型。

2、Class允许继承和被继承,struct不允许硬件设备,只能继承接口。

3. Class可以初始化变量,struct不能。

4. 类可以有无参数构造函数,但结构不能。 它必须是参数化构造函数,并且所有成员都必须在参数化构造函数中初始化。

【使用场景】

1.在表达抽象和多级对象层次结构时,类更适合大型和复杂的数据。

2、Struct适合作为一些常用数据组成的新类型。 当表示主要用于存储数据的点和矩形等轻量级对象时,它更喜欢简单的值。

3.Struct有性能优势,Class有面向对象的扩展优势。

3.简述面向对象的三大特点?

回答

封装、继承、多态。

封装:通过隐藏对象属性的实现细节,只向外界提供公共访问方法。

继承:通过子类继承基类、继承抽象类、继承接口来实现。

多态性:通过重写基类的override方法和虚方法来实现。 优点是:维护方便、扩展方便。 缺点是:性能比面向过程低。

4. 构造函数可以被重写吗?

回答

构造函数不能被继承,因此不能被重写,但可以重载。

5. 抽象类和接口有什么区别?

回答

相似点:都不能直接实例化

不同之处:

1、抽象类用abstract修饰,接口用interface修饰。

2. 抽象类中的方法可以实现,也可以不实现。 具有抽象方法的类必须用abstract修饰。 接口中的方法不允许被实现。

3、抽象类只能有单继承,而接口支持多继承。

4、抽象类有构造函数,但接口不能有构造函数。

5、接口只负责功能的定义,通过接口规范类(有什么功能),而抽象类则负责功能的定义,并且可以实现功能(实现什么功能)。

6. 类的执行顺序是怎样的?

回答

执行顺序:

父类、子类、静态块、静态字段、非静态块、非静态字段、构造函数、方法。

Lua面试问题

1.ipairs和pairs有什么区别?

回答

1.ipairs遇到nil会停止,pairs会输出nil值然后继续。

2.ipairs不会输出表中存储的键值对,而是会跳过键值对,然后顺序输出表中的值。 pairs会输出表的键值对,先按顺序输出值,然后再输出乱序的键值对(键的哈希值)。

2. 功能冒号和点有什么区别?

回答

冒号隐式传递 self,

如果点击的话开发学习,需要显示转​​账。

3. print(string.find("hello hello","hel")) 的结果?

回答

6 9

4.Lua中__index和__newindex有什么用?

回答

__index主要用于表查询;

__newindex主要用于表更新

5.Lua如何实现深拷贝?

回答

复制对象的基类型,同时也复制源对象中的对象。 通常需要对 Table 表进行深层复制并分配一个新的相同对象,但不是同一个表。

Lua还没有实现。 它封装了一个函数,递归复制表中的所有元素,并设置metetable元表。

如果key和value都不包含table属性,那么每次在泛型for中调用Func时,都会根据if判断直接返回具体的key和value。

如果包含多个表属性,那么就用这个if判断来解锁下一层表,最后递归返回。

核心逻辑:使用递归遍历表中所有元素

1.首先看copy方法中的代码。 如果类型不是表,则不需要遍历,可以直接赋值作为返回值;

2.当前传入的变量是一个表。 创建一个新表来存储旧表中的数据。 下面就是遍历旧表游戏引擎开发面试题,分别将k和v赋值给新表。 分配完成后游戏引擎开发面试题,将旧表的元素分配给新表。

3、给k和v赋值时,还必须调用copy方法来判断是否是表。 如果是表,则必须创建一个新表来接收表中的数据,以此类推,接近无限递归。

开发游戏引擎需要学什么_游戏引擎开发工程师面试_游戏引擎开发面试题

开发游戏引擎需要学什么_游戏引擎开发工程师面试_游戏引擎开发面试题

开发游戏引擎需要学什么_游戏引擎开发工程师面试_游戏引擎开发面试题

机会只会留给有准备的人。 认真对待每一次面试,面试后花时间仔细回顾。 即使最后面试失败了,我们也能从中学到很多东西~

其实,面试不仅是求职过程中非常重要的一部分,更是我们充分锻炼自己的知识、技能、沟通……等诸多方面的机会!

当然啦~在面试之前,你应该仔细阅读这篇文章,检查是否有遗漏,这样你才能更好地应对各大游戏公司的面试挑战!

游戏引擎开发工程师面试_游戏引擎开发面试题_开发游戏引擎需要学什么

以上20道面试题

你都记住了吗? !

想要领取【腾讯、网易、米哈游、莉莉丝】等各大游戏公司面试题的同学~扫描下方二维码添加助教即可领取! ! !

游戏引擎开发面试题_游戏引擎开发工程师面试_开发游戏引擎需要学什么

祝大家都能收到自己心仪的offer!

开发游戏引擎需要学什么_游戏引擎开发工程师面试_游戏引擎开发面试题

开发游戏引擎需要学什么_游戏引擎开发工程师面试_游戏引擎开发面试题

开发游戏引擎需要学什么_游戏引擎开发工程师面试_游戏引擎开发面试题

结尾

Unity架构师之路

Unity教程| 墙外团结| 免费资源

文章来源:http://mp.weixin.qq.com/s?src=11×tamp=1708049126&ver=5083&signature=QddYBUtHniFLT-eZMHzSKZrK9SgIEqmJ*LUFPx8xaTmdiNfS4gVjHEVl-DXolMm7nv6ldwGK94wylZ24NBqzwOSMw7AkswalQu8XuWLWC2RRmmMXd4a3JQEGzAIQRKNM&new=1