Unity AR/VR开发:实战高手训练营
上QQ阅读APP看书,第一时间看更新

2.4 Unity3D中的核心概念

在本节中,我们将介绍Unity3D中的几个核心概念和子系统。

2.4.1 场景

Unity3D中有一些核心的概念和子系统需要了解,比如游戏场景(Scene)、游戏对象、组件、预设体等。首先我们来了解最基本也是最重要的游戏场景。

游戏场景中包含游戏中的所有对象。我们可以在场景中创建主菜单、不同的关卡等。每个场景文件可以看作一个独立的关卡。在每个独立的游戏场景中,我们可以放置环境、障碍物、装饰物等。

2.4.2 游戏对象

游戏中的每一个对象都是游戏对象,这就意味着在游戏中所需要考虑的一切都和游戏对象有关。但单纯的游戏对象什么也不能做,我们必须赋予其特定的属性,这样它才能成为游戏角色、游戏场景,或是某种特殊的游戏效果。

游戏对象也是一种容器。我们可以向其中添加不同的部件,从而让其成为游戏角色、灯光、树木、声音等。而我们所添加的每个部件被称为组件。

2.4.3 组件

如果说游戏对象是Unity3D游戏的核心,那么组件则是用来构建游戏对象的基石。

游戏对象中往往包含一个或多个组件。组件可以为游戏对象提供不同的功能和特性。Unity3D中常用的组件类型如下。

1)Transform:游戏对象的基础组件,可以修改游戏对象在地图中的位置、旋转角度和缩放值。默认情况下,所有的游戏对象都会有一个Transform组件。

2)Mesh(网格)类型的组件:和Mesh相关的组件有5种,包括Mesh Filter(网格过滤器)、Text Mesh(文本网格)、Text Mesh Pro-Text(富文本网格)、Mesh Renderer(网格渲染器)和Skinned Mesh Renderer(蒙皮渲染器)。

3)Particle System(粒子系统):该组件可以模拟各种各样的特效,例如火焰、云彩、水流等。这是一个非常有用且较为庞大的系统,涉及非常多的数据设置,在后续章节中我们将对其进行详细介绍。

4)Physics(物理组件):为了让创造的场景更具有真实感,我们需要让物体在虚拟世界遵循在现实世界的物理规则。为了实现这一点,Unity3D内置了NVIDIA PhysX物理引擎,以此来模拟真实的物理行为。

5)Scripts(脚本组件):该组件由开发者自行编写,用于实现较为灵活与定制化的功能。Unity3D支持C#语言。

6)Audio(音频组件):用于设置音效或背景音乐的各种属性,从而打造更好的游戏氛围。

7)Video(视频组件):用于添加Unity3D内置的视频播放器。

8)Rendering(渲染):和视觉渲染相关的组件有很多,包括摄像机、天空盒、灯光、遮挡剔除等。

9)Event(事件):用于设置和响应各种事件。

10)Network(网络):用于设置游戏对象中与网络相关的属性。

11)UI(界面):和UI相关的组件。

12)AR(增强现实):增强现实相关的组件,主要是World Anchor。

除了上述提到的组件之外,还有其他类型的组件。这里只是让大家有一个初步的印象,在后续的学习中会逐步介绍。

2.4.4 预设体

预设体(Prefab)是一个游戏对象及其组件的集合,目的是使游戏对象可以被重复使用。一个形象的比喻是,预设体就好比模板,我们可以使用预设体在场景中快速创建一个具有特定组件属性值的游戏对象。