Unity 是市场上领先的实时开发平台之一,底层运行时代码用 C++ 编写,所有开发脚本均用 C# 编写。无论是想构建游戏、电影和动画电影,还是在虚拟世界中渲染建筑或工程概念,Unity 都有支持的基础设施。
Unity Hub
Unity Hub 允许下载多个 Unity 编辑器并将你的项目集中到一个地方。由于 Unity 升级不向后兼容,因此必须使用与创建项目时相同的 Unity 版本来打开项目。可以将项目更新到最新的 Unity 版本,但这可能需要进行一些调试才能解决功能错误。
安装 Unity Hub 的系统要求如下:
操作系统:
- 仅限 Windows 7 SP1+、8、10,64 位版本
- Mac OS X 10.12+
- Ubuntu 16.04、18.04 和 CentOS 7
GPU:
- 具有 DX10(着色器模型 4.0)功能的显卡
Unity Hub 界面包含四个选项卡:Projects、Learn、Community 和 Installs(项目、学习、社区和安装)。
- Projects - 包含添加到 Unity Hub 的所有 Unity 项目的列表。此选项卡用于创建新项目,添加其他接收的项目。创建新项目时,会将其添加到列表,同时添加的还包括 Unity 版本、目标平台和项目上次修改日期。
- Learn - 提供 Unity 创建的项目和教程以帮助您学习。
- Community 选项卡提供与 Unity 社区互动的渠道链接,例如 Unity 论坛和 Unity Pulse - Unity 的反馈平台。
- Installs:包含已安装的所有 Unity 版本的列表。可以在此选项卡中安装其他版本的 Unity,并向已安装的现有版本添加其他模块。
Unity 版本
可以安装多个版本的 Unity。如果正在处理使用不同版本的 Unity 创建的各种项目,这将非常有用。如果是从头开始并且没有版本依赖性,请考虑安装最新的 LTS 发行版 Unity。LTS 版本(长期支持)是稳定的 Unity 版本,最适合长期开发和发布项目。Unity 还为其所有版本提供了非 LTS 版本。
即将发布的 Beta 版本也可使用,但是,除非熟悉 Unity 编辑器并熟悉调试,才建议使用 Beta 版本。
安装的每个 Unity 版本都支持模块。这些模块提供额外的开发支持,例如开发工具、平台、文档和语言包。安装 Unity 版本后,可以从 Installs 选项卡中向 Unity 版本添加其他模块。
通过 Unity Hub 添加新 Unity 版本时,Unity 仅提供最新的 Unity 版本、LTS 版本和 Beta 版本。可以从 Unity Download Archive 中查找和下载旧版本。
平台
平台模块对于 Unity 至关重要,因为它使您能够在部署应用时定位不同的平台。就 XR 开发而言,Unity 支持以下平台:
- ARKit
- ARCore
- Microsoft HoloLens
- Windows Mixed Reality
- Magic Leap
- Oculus
- OpenXR
- PlayStation VR
以下是支持 XR 开发的最常见平台:
- Universal Windows Platform (UWP)
- Android
- iOS
Universal Windows Platform
要针对 Windows 构建和运行,必须安装 Unity Universal Windows Platform Build Support 平台模块。只有当你在 Windows 电脑上使用 Unity 时,Universal Windows Platform 才会显示在平台列表中。还需要 Windows 10 和 Visual Studio 2019(16.8 或更高版本)。Visual Studio 需要以下工作负载:
- Desktop development with C++
- Universal Windows Platform (UWP) development
- Game development with Unity
在 UWP 工作负载中,请确保安装时包含以下组件:
- Windows 10 SDK version 10.0.19041.0 or 10.0.18362.0
- USB Device Connectivity
- C++ (v142) Universal Windows Platform tools
Android
要为 Android 构建和运行项目,必须安装 Unity Android Build Support 平台模块。还需要安装 Android Software Development Kit (SDK) 和 Native Development Kit (NDK),以便在 Android 设备上构建和运行代码。默认情况下,Unity 会安装基于 OpenJDK 的 Java Development Kit。
可以将 Android 设备连接到计算机,以进行 USB 调试并将应用安装到设备上。USB 调试要求在设备上启用 Developer 选项。启用后,可以使用 USB 电缆将设备连接到计算机。如果在 Windows 计算机上进行开发,则可能需要安装特定于设备的 USB 驱动程序。
iOS
要为 iOS 构建和运行项目,必须安装 Unity iOS Build Support 平台模块。虽然不需要 Apple 开发人员帐户即可在设备上构建,但建议设置 Apple 开发人员帐户,以充分利用 Unity 在 iOS 上的潜力。
脚本编辑器
Unity 需要代码编辑器或集成开发环境 (IDE) 来编辑脚本。此类软件包含基于文本的代码编辑器、代码调试器和其他有用的编程工具。Unity Hub 作为模块来为 Visual Studio 提供此支持。不过,也可以使用自己选择的编辑器。包括:
- Visual Studio Code
- Project Rider
- Atom
- MonoDevelop
选择脚本编辑器是个人喜好问题。如果不确定选择哪个编辑器,推荐使用 Visual Studio。
创建项目
项目是在 Unity Hub 的 Projects 选项卡中创建的。选择 New 按钮默认为项目选择最新的 Unity 版本。如果安装了多个 Unity 版本,则可以选择 New 旁边的下拉菜单来指定版本。
模板
Unity Hub 提供三种不同类型的模板:
- Core Templates:这些模板中的大多数都针对想要开发的应用程序类型,可作为满足需求的快速入门。但是,2D 和 3D 核心模板可作为可公开使用的空白画布。
- Sample Templates:这些模板提供以前开发的应用程序,即可用于测试或了解有关引擎的更多信息的示例。
- Learning Templates:这些模板包含成熟的教程。这些是熟悉 Unity 和了解有关引擎开发基础知识的绝佳起点。
设置
可以在“Settings”中为项目提供名称和位置。请考虑以最容易区分项目的方式命名和组织你的 Unity 项目。
Unity 编辑器界面被组织成多个窗口,可以根据个人布局偏好重新排列。下面的编辑器图像显示了最常用窗口的默认位置:
- A、工具栏
- B、层次结构窗口
- C、场景视图
- D、游戏视图
- E、检查器窗口
- F、项目窗口
- G、状态栏
工具栏和状态栏不是窗口,而是 Unity 编辑器的常用默认功能,无法重新排列。
工具栏
工具栏提供对最基本工作功能的访问。可以在 Unity 编辑器顶部找到工具栏。工具栏由几组控件组成,每组控件与编辑器的不同部分相关。
变换工具(Transform Tools)
使用场景视图中的变换工具来操纵场景。工具栏中的第一个工具是手形工具,它允许平移场景。移动、旋转、缩放、矩形变换和变换工具(按顺序显示)允许编辑单个对象。如果选择了四个变换工具之一,选定的对象还会在场景视图中显示一个 Gizmo。
变换 Gizmo
切换变换 Gizmo (Transform Gizmo)会影响场景视图。
播放、暂停和步进
使用游戏视图中的播放、暂停和步进按钮。
Unity Collaborate
从 Collab 下拉菜单启动 Unity Collaborate。
Cloud (云)
单击 “Cloud” 按钮打开 Unity 服务窗口。
Unity Account (Unity 帐户)
可以从帐户下拉菜单访问 Unity 帐户。
Layers
可以从 Layers 下拉菜单中控制哪些对象出现在场景视图中。
Layout
可以更改视图的排列,然后保存新布局或从 Layout 下拉菜单中加载现有布局。
Hierarchy 窗口
Hierarchy 窗口是场景中每个对象(或 GameObject)的层次化文本表示。场景中的每个项目在层次结构中都有一个条目,因此这两个窗口本质上是相互关联的。层次结构揭示了 GameObjects 如何相互连接的结构。可以使用 Hierarchy 窗口对场景中使用的 GameObjects 进行排序和分组。
默认情况下,Hierarchy 窗口按创建顺序列出 GameObjects。可以在场景中上下拖动选定的 GameObject 以更改它们的顺序。当在场景视图中添加或删除 GameObjects 时,也可以从 Hierarchy 窗口中添加或删除它们。Hierarchy 窗口还可以包含其他场景,每个场景都包含自己的 GameObjects。
父子关系
Unity 使用父子层次结构或父子关系的概念来对 GameObjects 进行分组。一个对象可以包含继承其属性的其他 GameObjects。可以将 GameObjects 链接在一起,以帮助移动、缩放或转换 GameObjects 集合。当移动顶层对象或父 GameObject 时,也会移动所有子 GameObjects。
可以创建嵌套的父子 GameObjects。所有嵌套对象仍然是原始父 GameObject 或根 GameObject 的后代。子 GameObjects 继承父 GameObject 的移动和旋转。
GameObject 可见性
可以在场景视图中隐藏 GameObjects,而不会改变其在应用程序中的可见性。这些控制对于处理难以查看和选择特定 GameObjects 的大型或复杂场景非常有用。要隐藏或显示 GameObject,请单击场景可见性(Scene visibility)图标。
场景视图
场景视图允许直观地导航和编辑场景。场景视图可以显示 3D 或 2D 视角,具体取决于正在处理的项目类型。您可以使用场景视图选择和定位场景、角色、摄像机、灯光和所有其他类型的游戏对象。
场景导航
场景视图有一组导航控件,可帮助快速高效地移动:
- Scene Gizmo
- Move、Orbit 和 Zoom 工具
- Center 工具
Scene Gizmo
Scene Gizmo 出现在场景视图的右上角。它显示场景视图相机的当前方向,并允许快速修改视角和投影模式。
Scene Gizmo 在立方体的每一侧都有一个锥形臂。最前面的臂标记为 X、Y 和 Z。单击任何锥形轴臂可将场景视图相机捕捉到它所代表的轴上(例如:顶视图、左视图和前视图)。还可以右键单击立方体以调出一个带有视角列表的菜单。要返回默认视角,请右键单击 Scene Gizmo,然后单击 Free。
可以打开或关闭透视 (Perspective)。这会将场景视图的投影模式在透视和正交(有时称为“等距”)之间切换。为此,请单击 Scene Gizmo 中心的立方体或其下方的文本。正交视图没有透视,与单击其中一个圆锥轴臂结合使用可获得正面、顶部或侧面视图。
如果场景视图处于尴尬的视点(上下颠倒,或者只是你觉得混乱的角度),请按住 Shift 键并单击 Scene Gizmo 中心的立方体以返回透视视图,该视图的角度是从侧面和略微从上方观察场景。
单击 Scene Gizmo 右上角的挂锁以启用或禁用场景的旋转。禁用场景旋转后,右键单击鼠标会平移视图而不是旋转视图。这与手动工具相同。
注意:在 2D 模式下,Scene Gizmo 不会出现,因为唯一的选项是让视图垂直于 X、Y 平面。
Move、Orbit 和 Zoom
工具栏中的手形工具有三种可互换的模式:移动、轨道和缩放。移动模式以手形表示,可以通过单击和拖动来移动相机。
轨道模式以眼睛图标表示,可以通过按 ALT/Option + 左键单击并拖动来围绕当前枢轴点轨道运行相机。
缩放模式以带有加号的放大镜图标表示,可以通过按 ALT/Option + 右键单击并拖动来缩放场景视图。
对于每种模式,可以按住 Shift 键来增加移动和缩放的速度。
Center 工具
为了更好地查看对象,可以将场景视图置于 GameObject 上。为此,请在 Hierarchy 中选择 GameObject,将鼠标移到场景视图上,然后按 F。即使 GameObject 正在移动,也可以使用 Shift+F 将视图锁定到 GameObject。
游戏(Game)视图
游戏视图通过场景摄像机模拟最终渲染的游戏外观。单击工具栏中的播放按钮时,将进入播放模式并开始模拟。在播放模式下,所做的任何更改都是临时的,退出播放模式时将重置。需要一个或多个摄像机 GameObjects 来控制玩家在使用应用程序时看到的内容。
检查器(Inspector)窗口
检查器窗口允许查看和编辑当前选定 GameObject 的所有属性。由于不同类型的 GameObject 具有不同的属性集,因此每次选择不同的 GameObject 时,检查器窗口的布局和内容都会发生变化。层次结构中的组件也可以重新排序。当选择了两个或更多项目时,可以在检查器窗口中编辑它们共有的所有属性。Unity 将提供的值复制到所有选定项目。检查器窗口显示选定项目的数量。
项目(Project)窗口
项目窗口显示可在项目中使用的资产(Assets)库。当资产导入项目时,它们会出现在这里。项目窗口是在应用程序中导航和查找资产和其他项目文件的主要方式。
浏览器的左侧面板以分层列表的形式显示项目的文件夹结构 (A)。当从列表中选择一个文件夹时,Unity 会在右侧窗格中显示其内容。
单个资产 (B) 在右侧面板中显示为各种指示其类型的图标(例如,脚本、材料、子文件夹)。要调整图标大小,请使用面板底部的滑块;如果将滑块移到最左侧,它们将被分层列表视图替换。滑块左侧的空间显示当前选定的项目,如果正在执行搜索,则包括该项目的完整路径。
项目结构列表上方是收藏夹部分 (C),可以在其中保存常用项目以方便访问。可以将项目从项目结构列表拖到收藏夹,也可以在那里保存搜索查询。
项目窗口还包含一个工具栏,其中包含用于创建资产和子文件夹、搜索项目文件夹以及切换项目窗口中包的可见性等操作。
状态栏
状态栏提供有关各种 Unity 进程的通知,以及快速访问相关工具和设置。
作为一款广泛使用的游戏开发引擎,Unity在游戏行业中占据着重要的地位,与国内外的一些大厂,如EA、腾讯、网易、完美世界等都有着长期深度的合作。
一方面,Unity提供运营工具及服务,助力游戏的运营与商业化;另一方面,Unity也提供教育及可视化产品,给中小独立开发者提供了强大的创作支持。
其实,除了传统的游戏开发领域,Unity在汽车及高端制造、建筑制造、影视文娱等领域也有着广泛的应用。