场景对象 目标 回忆用于渲染3D对象的Unity场景所需的对象。 将游戏对象组织成父子关系。 识别游戏对象的组件。 引言 应用程序的场景包含各种对象,使您的XR体验栩栩如生。虽然有些是可选的,但有三个必需的对象必须包含在场景中以渲染3D环境: 灯光 摄像机 游戏对象 默认情况下,Unity为新创建的场景提供了灯光和摄像机。您需要添加一个对象进行渲染,并调整对象的属性以满足应用程序的需求。 摄像机 Unity场景中的游戏对象表示三维空间中的对象。由于观众的屏幕是二维的,Unity需要捕获一个视图并将其“展平”以供显示。它通过使用摄像机来实现这一点。就像电影中的摄像机用来向观众展示故事一样,Unity中的摄像机用来向用户展示应用程序场景。每个场景至少会有一个摄像机,但您可以有多个摄像机。
应用程序的场景包含各种对象,使您的XR体验栩栩如生。虽然有些是可选的,但有三个必需的对象必须包含在场景中以渲染3D环境:
默认情况下,Unity为新创建的场景提供了灯光和摄像机。您需要添加一个对象进行渲染,并调整对象的属性以满足应用程序的需求。
Unity场景中的游戏对象表示三维空间中的对象。由于观众的屏幕是二维的,Unity需要捕获一个视图并将其“展平”以供显示。它通过使用摄像机来实现这一点。就像电影中的摄像机用来向观众展示故事一样,Unity中的摄像机用来向用户展示应用程序场景。每个场景至少会有一个摄像机,但您可以有多个摄像机。例如,多个摄像机可以用于分屏双人游戏。

灯光是每个场景的重要组成部分。它们定义了3D环境的颜色和氛围。在每个场景中,您可能会使用多个灯光。Unity中的灯光工作原理是模拟现实世界中光线的行为——这包括光线的强度,即颜色和亮度。Unity使用详细的模型来获得更真实的光线效果,或者使用简化的模型来获得更风格化的效果。光线的另一个方面,阴影,增加了场景的深度和真实感,因为它们揭示了物体的大小和位置,否则这些物体看起来可能很平坦。在Unity中,灯光可以从一个游戏对象投射到其他部分,或者投射到附近的其他游戏对象上。

直接光是指发出后直接击中表面一次,然后直接反射到传感器(例如,眼睛的视网膜或相机)的光。
间接光是指最终反射到传感器的所有其他光,包括多次击中表面的光以及天空光。要达到逼真的光照效果,您需要同时模拟直接光和间接光。
游戏中的每个对象都是一个游戏对象,从角色和可收集物品到灯光、摄像机和特殊效果。然而,游戏对象本身不能做任何事情;您需要为其添加属性才能使其成为一个角色、环境或特殊效果。
游戏对象本身并不能完成很多任务,但它们充当组件的容器。组件定义了游戏对象的行为或功能。根据您想要创建的对象类型,您可以向游戏对象添加不同的组件组合。Unity有许多不同内置的组件类型,您也可以使用脚本创建自己的组件。

游戏对象上的组件可以在检查器窗口中查看。每个组件内都有不同的属性,可以在编辑器中或通过脚本进行调整。

游戏对象总是附带一个Transform组件(A),该组件表示位置、旋转和缩放。Transform组件是唯一不能被删除的组件。
在层级窗口中,游戏对象名称旁边会显示一个复选框,指示对象是否处于活动状态(B)。当未标记时,游戏对象将暂时从场景中移除。对于嵌套的游戏对象,如果其父游戏对象被禁用,则所有子游戏对象也会被禁用。
材质与着色器一起定义游戏对象的外观。着色器包含图形卡执行的代码和指令。材质可以在多个游戏对象之间重复使用,而无需为相同的颜色创建多个材质。

您可以在Unity编辑器中创建新的材质,并利用外部资源(如纹理)来提供个性。从组织的角度来看,请考虑将项目中的所有材质放置在项目的根目录下的Materials文件夹中——同样适用于Textures。要创建新的材质,在项目窗口中,选择**+后选择Assets > Create > Material** 或者在项目窗口中右键单击并选择Create > Material。

材质属性可以在检查器窗口中进行修改。要将材质分配给游戏对象,从项目窗口中选择材质并拖放到游戏对象上。
每个游戏对象都有一个变换组件,该组件决定了其相对于场景的位置、旋转和缩放。变换属性包括:
| 属性 | 功能 |
|---|---|
Position |
确定变换在X、Y、Z坐标系中的位置。如果修改了这个属性,对象的位置会改变,从而移动对象。 |
Rotation |
变换围绕X、Y和Z轴的旋转。以度为单位测量。 |
Scale |
变换沿X、Y和Z轴的缩放。值“1”表示原始大小,通过更改此值,对象的大小会发生变化。 |
所有三个变换属性都可以在变换组件的检查器窗口中更改,或者通过使用工具栏中的变换工具进行更改。
预制件是一组游戏对象的组件、属性值和子游戏对象,作为可重用的资产创建。预制件资产充当模板,您可以从中在场景中创建新的预制件实例。
当您希望在场景中的多个位置或跨项目中的多个场景中重复使用配置好的游戏对象(例如道具或场景的一部分)时,应该将其转换为预制件。这比简单地复制和粘贴游戏对象更好,因为预制件系统允许您自动保持所有副本同步。
对预制件资产所做的任何修改都会自动反映在该预制件的实例中,从而使您可以轻松地在整个项目中进行广泛更改,而无需反复对资产的每个副本进行相同的操作。

您可以将预制件嵌套在其他预制件中,以创建易于在多个级别编辑的对象层次结构。
但这并不意味着所有预制件实例都必须完全相同。如果您希望某些预制件实例与其他实例不同,可以覆盖单个预制件实例上的设置。您还可以创建预制件的变体,这样就可以将一组覆盖设置组合在一起,形成预制件的一个有意义的变化。
当您希望在运行时实例化(或创建一个实例)原本不在场景中的游戏对象时,也应该使用预制件。例如,您可以创建预制件以在应用程序播放时生成特效、投射物或其他对象。
我们确定了以下资源,以提供额外的背景和学习内容,涵盖本课中介绍的内容。我们鼓励您复习下面的材料,并探索更多相关主题。
声明:
本文件灏天文库团队进行了翻译。尽管我们力求准确,但请注意,翻译可能包含错误或不准确之处。原文档以其原始语言为准。我们不对因使用此翻译而产生的任何误解或误译负责。