【春秋招必看】Unity相关笔试面试题(内有完整答案)第五期

欢迎来到光光的奇妙冒险,我是你们的煎饼光子老师。

今天是我们的第五期笔试面试题总结。


C#部分:

1、以上代码,谁的效率更高?为什么?

答案:
代码2的效率更高

因为List的本质是数组,在初始化时,如果不默认为其指明分配多少容量,它会不断扩容
扩容会带来效率的降低和垃圾的产生
效率的降低:从旧数组到新数组的搬家
垃圾的产生:每次扩容时,就数组就变成了垃圾

2、数组和链表的区别是什么?

答案:
1.存储结构不同
数组是顺序存储结构,在内存中是连续存储的
链表是链式存储结构,在内存中是非连续存储的

2.访问效率不同
数组由于是顺序存储,通过下标访问,访问效率高
链表由于是非连续存储,我们想要获取其中某一元素,需要从头或尾遍历,效率低

3.插入、删除效率不同
数组由于是顺序存储,在插入和删除时,需要整体移动数组中的大部分元素,效率低
链表由于是链式存储,在插入和删除时,效率高

4.越界问题
数组由于是顺序存储,声明时容量是固定的,如果不处理扩容逻辑,存在越界风险
链表由于是链式存储,无越界风险

3、C# 中的Action和Func是什么?Unity 中的UnityAction是什么?他们有什么区别?

答案:
Action和Func是System命名空间下 C#为我们提供的两个写好的委托
Action本身是一个无参无返回值的委托
对应的Action<>泛型委托支持最多16个参数

Func本身是一个无参有返回值的委托
对应的Func<>泛型委托支持最多16个参数,并且有返回值

UnityAction是UnityEngine.Events命名空间下 Unity为我们提供的写好的委托
UnityAction本身是一个无参无返回值的委托
对应的UnityAction<>泛型委托支持最多4个参数

※4、请问最终的打印结果是什么?

 答案:
0-Alice-7

string类型只要赋值就会生成新的地址,这一点使得它虽然是引用类型,但在实际使用中却很像值类型;

而数组是引用类型,在new时才会产生新地址

此处使用ref关键字传入Record,得到的结果才是“6-Bob-7”
考点:
1.值和引用的区别
2.特殊引用类型string
3.结构体中的引用成员

5、网络游戏开发中,网络传输数据的基本流程是什么?

答案:
客户端将自定义类对象数据序列化为2进制数据发送给服务端

服务端将收到的2进制数据反序列化为对应的类对象进行逻辑处理

如果是服务端发送给客户端的消息也是同理


Unity部分:

1、两个四元数相乘有什么作用?四元数乘以向量有什么作用?

四元数相乘:角度叠加
四元数乘以向量:向量旋转

2、图中的小球是否被渲染了?是否会产生DrawCall?

答案:
不会被渲染,不会产生DrawCall

Unity本身有摄像机视锥体剔除,也就是不会显示完全位于视锥体之外的游戏对象
那么小球就不会进行渲染,也不会提交数据给GPU,也就不会产生DrawCall

 3、在没有使用遮挡剔除的情况下,图中A和B都是默认标准材质,图中的小球最终是否会被渲染,是否会产生DrawCall

答案:
最终不会被渲染,标准材质存在深度测试,小球在立方体后方,不会通过深度测试,所以不会被渲染

会产生DrawCall,既然都深度测试了,那么肯定是存在DrawCall的
深度测试发生在片元着色器处理之后,GPU会对每个片元执行深度测试来决定遮挡关系,决定是否被渲染

4、如果不考虑IOS平台,只在Windows和Android平台上发布游戏,如何在不使用第三方热更新方案的前提下实现热更新功能

答案:
C#的反射
可以通过热更DLL文件的形式,加载程序集(dll)
利用反射执行热更DLL包中的逻辑

5、Unity中如何调试排查Android上运行的项目问题

答案:
1.如果需要进行断点调试
通过数据线链接运行项目的Android设备
发布时开启了
Development Build 开发模式构建
Autoconnect Profiler 自动连接分析器
Script Debuggins 脚本调试 
Wait For Managed Debugger 等待托管调试器
等选项
然后只需要Build and Run既可以
利用Unity的Profiler 性能剖析器窗口排查性能问题
并且还可以进行断点调试

2.如果只是获取一些打印调试信息
可以利用Unity2019.4及其以上版本提供的Android Logcat工具获取信息
Unity2019.4以下的版本,可以使用Android的ADB(安卓调试桥)工具

3.如果需要获取设备输入信息
可以利用Unity Remote来测试移动设备的输入相关逻辑

 

### 回答1: Unity是一款广泛使用的游戏开发引擎。它提供了可视化的编辑器界面、底层的渲染引擎以及广泛支持的插件生态系统,使得开发者可以很方便地进行游戏开发。 如果你准备参加Unity面试笔试,你需要掌握以下方面的知识: 1. 编程语言Unity支持C#和JavaScript语言。你需要掌握其中一种或两种编程语言,并且能够熟练应用它们。 2. 游戏设计:你需要具备游戏设计的基本知识,包括游戏流程、关卡设计、角色设计、游戏平衡等方面的知识。 3. Unity编辑器:你需要熟练掌握Unity编辑器的各种工具,例如场景编辑、组件列表、资源管理等。 4. 物理引擎:Unity包含了物理引擎,你需要熟悉它的基本概念,例如重力、力、碰撞等。 5. 动画系统:游戏中的角色动画是非常重要的一部分,你需要熟悉Unity的动画系统,包括动画控制器、状态机等。 总之,如果你想要在Unity领域取得成功,你需要在以上方面进行深入学习和掌握。如果你能够在面试笔试中展现出你的知识和技能,相信你会很快获得工作机会。 ### 回答2: Unity是当前市面上非常流行的游戏引擎,而从事Unity开发的人才需求也越来越大。在面试笔试中,可能会涉及到Unity相关知识和技能。下面将从Unity的四个方面进行简单介绍:游戏物体、组件、Scene和Asset以及C#语言。 1. 游戏物体 在Unity中,物体(GameObject)是游戏场景中的核心对象。而每一个场景都是由若干个物体组成,物体又是由若干个组件(Component)组成的。因此,需要了解游戏物体的各种操作和属性设置,包括名称、激活状态、位置、旋转、缩放、父子关系等。 2. 组件 组件是Unity中最常用的一种对象,也是游戏物体的一个基本组成部分。它可以改变游戏物体的行为、外观和互动方式。在Unity中,可以通过添加或删除组件来更改游戏物体的属性和行为。例如,常用的组件包括:Animator、Rigidbody、Collider等。 3. Scene和Asset Scene(场景)是Unity的一个概念,是由多个游戏物体和它们的组件组成的。在进行游戏开发时,需要了解如何创建、导入和导出Scene。而Asset(资源)则是指Unity中的各种资源文件,例如:纹理、音频、3D模型、动画等。需要了解如何使用Asset Store、如何导入和设置Asset等。 4. C#语言 Unity使用C#语言作为主要的编程语言。因此,在进行Unity开发时,需要了解一些基本的C#语言语法和编程思想,包括:变量、方法、类、继承、多态、接口、委托等。此外,还需要了解一些Unity特有的API和对象模型,例如:GameObject、Component、Transform、Input、Physics等。 总体来说,对于Unity面试笔试,需要具备扎实的Unity框架和常用组件的运用能力,同时还能够掌握C#语言的基本知识。只有掌握了这些核心技能,才能在Unity开发中不断提升自己,并为团队和项目创造出更多价值。 ### 回答3: Unity 是一款非常流行的游戏开发引擎,其在市场上占有非常重要的地位,因此很多人选择学习和使用 Unity。如何通过 Unity面试笔试题来测试候选人的实际技能以及对 Unity 开发的理解和掌握程度呢? 对于 Unity面试笔试题,一般会涉及以下几个方面: 1. 编程语言和算法基础 Unity 开发主要使用 C# 语言,因此需要候选人具备扎实的 C# 基础和算法基础,包括数据结构、算法思想、设计模式等方面的知识。 2. Unity 引擎和 API 掌握程度 作为 Unity 开发者,需要掌握很多 Unity 引擎和 API 的知识,比如场景管理、游戏物体与组件、UI 界面开发、动画系统、物理引擎等。针对这些方面,笔试题目可能会让候选人通过代码实现相关功能或者回答相关问题。 3. 项目经验和实践能力 除了理论知识,实际项目经验和实践能力也非常重要。因此,笔试题目可能会涉及到一些实际场景的开发问题,比如优化性能、解决 bug、协作开发等方面。 总之,Unity 面试笔试题主要考察候选人的编程能力、Unity 引擎和 API 掌握程度以及项目实践能力。同时,需要候选人具备良好的沟通能力和团队合作精神,这对于实际开发非常重要。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Unity练习生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值