12 个最热门 Unity 3D 面试问题及答案 (2025)
以下是 Unity 面试问题和答案,可帮助新手和经验丰富的 Unity 开发人员应聘者获得理想的工作。
1)什么是Unity 3D?
Unity 3D 是一个强大的跨平台且完全集成的开发引擎,它提供开箱即用的功能来创建游戏和其他交互式 3D 内容。
2)Unity3D有什么特点?
Unity 的特征是
- 它是一个多平台游戏引擎,具有以下功能(3D对象, 物理、动画、脚本、灯光等)
- 附带脚本编辑器
- MonoDevelop(Win/Mac)
- 它也可以使用 Visual Studio (Windows)
- 3D地形编辑器
- 3D 对象动画管理器
- GUI 系统
- 多平台可执行导出器 Web 播放器/Android/本机应用程序/Wii
在 Unity 3D 中,您可以将艺术和资产组合到场景和环境中,例如添加特效、物理和动画、灯光等。
3) 提及 Unity 3D 的重要组件?
一些重要的 Unity 3D 组件包括
- 工具栏:它具有几个重要的场景和游戏窗口操作工具
- 场景视图:显示当前打开的场景的完整渲染 3D 预览,并允许您添加、编辑和删除游戏对象
- 等级制度:显示当前场景视图中每个游戏对象的列表
- 项目窗口:在复杂的游戏中,项目窗口会根据需要搜索特定的游戏资产。它会探索资产目录中项目中使用的所有纹理、脚本、模型和预制件
- 游戏视图:在 Unity 中,您可以查看您的游戏,并在实时玩游戏时对游戏进行更改。
4)请提及Unity 3D中Inspector的作用是什么?
检查器是一个上下文相关的面板,您可以在其中调整层次结构面板中列出的游戏对象的位置、比例和旋转。
5)解释一下 Unity 3D 中的预制件是什么?
Unity 3D 中的预制件是指预制对象模板(结合对象和脚本的类)。在设计时,可以将预制件从项目窗口拖到场景窗口,并添加场景的游戏对象层次结构。如果需要,可以编辑对象。在运行时,脚本可以在给定位置或使用给定的变换属性集创建新的对象实例。
6) 解释什么是 Unity3D 文件以及如何打开 unity3d 文件?
Unity3D 文件是 Unity 创建的场景网络播放器文件;Unity 是一款用于开发 3D 游戏的应用程序。这些文件包含单个存档中的所有资产和其他游戏数据,用于在具有 Unity 网络播放器插件的浏览器中启用游戏。3D Unity 文件中的资产以专有的封闭格式保存。
7)列出一些 Unity 3D 的最佳实践?
- 缓存组件引用:始终缓存对需要使用脚本的组件的引用
- 内存分配:不要动态实例化新对象,而要始终考虑创建和使用对象池。这将有助于减少内存碎片,并减少垃圾收集器的工作量
- 层和碰撞矩阵:对于每个新层,在碰撞矩阵上添加新的列和行。该矩阵负责定义层之间的相互作用
- 光线投射:它可以向特定方向发射特定长度的射线,并让你知道它是否击中了某物
- 物理 2D 3D:选择适合您的游戏的物理引擎
- 刚体:在对象之间添加物理交互时,它是必不可少的组件
- 固定时间步长:固定时间步长值直接影响fixedupdate()和物理更新率。
8)解释一下 Unity3D 中的 Fixed Timestep 是什么?为什么 Fixed Timestep 设置会影响游戏速度?
固定时间步长功能有助于设置系统以固定的时间间隔进行更新。类似队列的机制将管理在各个时间周期之间累积的所有实时事件。如果帧速率低于为固定时间步长设置的阈值,则会影响游戏速度。
9) 在 Unity 3D 中如何隐藏游戏对象?
要在 Unity 3D 中隐藏游戏对象,你必须使用代码
gameObject.SetActive(false);
10) 列出 Unity 3D 的优点和缺点?
优点 | 缺点 |
---|---|
它使用 JavaScript 和 C# 语言编写脚本 | 与虚幻引擎相比,它的图形质量较低 |
Unity 提供了一个 Asset Store,您可以在其中购买或查找想要在游戏中使用的内容 | 界面不友好,很难学习,尤其是对于初学者来说 |
你可以自定义着色器并改变 Unity 渲染游戏的方式 | 它需要良好的编程知识,因为大多数东西都是在脚本上运行的 |
它是为 iOS、Android 和 Web 等移动设备制作游戏的绝佳平台(HTML5) | ----- |
11)解释一下Unity3D中AssetBundle有什么用途?
AssetBundles 是可以从 Unity 导出的文件,用于包含您选择的资产。AssetBundles 的创建是为了将内容下载到您的应用程序中。
12) 列出 Unity3D UE4(虚幻引擎 4)的一些主要功能?
UE4 | Unity3D |
---|---|
游戏逻辑用C++或蓝图编辑器编写 | 游戏逻辑是使用 Mono 环境编写的 |
基础场景对象-Actor | 基础场景对象-GameObject |
输入事件- Actor 类的组件 UInputComponent | 输入事件-类输入 |
UE4的主要类和函数包括int32、int24、Fstring、Ftransform、FQuat、FRotator、Actor、TArray | 主要的类和函数包括int、string、quaternion、transform、rotation、gameobject、 排列 |
创建指定类的新实例并指向新创建的 Actor。可以使用 UWorld::SpawnActor() | 要复制对象,可以使用函数 Instantiate() |
虚幻引擎 4 的 UI 更加灵活,不易崩溃 | 该工具的资产商店比 UE4 好得多 |
它不支持 X-box 360 或 PS3 等系统,需要 AMD Radeon HD 卡才能正常运行 | 它支持多种游戏机,如 X-box 和 PS4,以及它们的前代产品 |
与 Unity3D 相比更便宜 | Unity3D 有免费版本,但缺少一些功能,而专业版与 UE4 相比价格稍贵 |
使用 UE4 不需要编程语言知识 | 它需要编程语言知识 |
这些面试问题也会对你的口试有帮助
游戏对象.变换.设置活动(false)
更换
gameObject.SetActive(false)
你好,
谢谢您的建议,已更正。
Transform不能Hide只有gameObject可以Hide所以写的内容是正确的