Cocos Creator:节点和组件

推荐:将NSDT场景编辑器加入你的3D工具链
3D工具集:NSDT 编辑器
节点和组件
Cocos Creator 的工作流程以基于组件的开发为中心,也称为实体组件系统,这仅仅意味着游戏的各种元素是以组合而不是继承的方式构建的。
在 Cocos Creator 中,节点是托管组件的实体,我们在其上挂载具有各种功能的组件,以赋予它各种表示和功能。让我们看看如何创建节点并向场景添加组件。
节点
节点是场景的基本构建基块。节点以树状关系进行组织,每个节点可以有多个子节点:

节点具有以下属性:
- 节点包含一组基本属性(位置、旋转、缩放),节点按一组相对变换关系组织在一起,如坐标系和节点变换属性中所述。
- 节点之间的更新顺序是级联的。子节点的更新取决于父节点,子节点遵循父节点转换。
- 可以将组件添加到节点以将多个组件与节点关联。
创建节点
获取具有特定功能的节点的最快方法是使用“层次结构”面板左上角的“创建节点”按钮。以最简单的创建球体节点为例,单击 +,在左上角创建一个节点按钮,然后选择创建 3D 对象 ->创建球体。

请注意“场景和层次结构”面板中新添加的“球体”节点。默认情况下,新节点被命名,表示它是其功能主要由 Sphere 组件提供的节点。尝试再次单击“创建节点”按钮以选择其他节点类型,并查看它们的命名和行为是否不同。另请注意,创建 UI 节点会自动创建一个画布节点作为 UI 节点的根节点,如文档 UI 结构说明中所述。Sphere
有关单选、多选、复制、删除等操作的更多信息。的节点数量,请参考层次结构面板文档。
要在脚本中动态创建节点,请参阅创建和销毁节点文档。
节点属性

移动性:节点的移动性。不同的移动性可能导致节点在照明方面的不同属性和性能

对于包含轻组件的节点,移动性的行为略有不同,如下文所述。
- 用于容纳轻型组件的节点
- 静态:烘烤直接和间接光,烘烤后运行时不参与计算
- 静止:仅烘烤间接光,运行时仅计算直射光
- 可移动:不烘烤,仅在运行时计算直射光
- 对于具有网格渲染器组件的节点
- 静态和静止 静态对象:可以使用光照映射
- 可移动动态物体:可以使用光探针 一般来说,可以将轻量级组件添加到包含 MeshRenderer 组件的节点,但不建议这样做,请考虑将多个节点分开以实现这样的要求。
- 图层:设置节点的可见性能力。有关详细信息,请参阅以下设置节点的可见性。
组件
什么是组件,它们如何关联节点?
选择上面创建的节点,并注意“检查器”面板显示的内容:Sphere

“检查器”面板中以标题开头的部分是节点的属性,其中包括有关节点的 、、 和其他转换的信息。坐标系和结点变换属性文档中对此进行了详细介绍。NodePositionRotationScale
从标题开始是安装在球体上的网格渲染器组件的属性。在 Cocos Creator 中,MeshRenderer 组件用于渲染静态 3D 模型,其中属性用于指定用于渲染的网格资源。由于球体节点刚刚创建,因此默认值为 。cc.MeshRendererMeshsphere.mesh
该属性用于指定用于渲染的材质。您可以尝试将任何材质从“资源”拖动到“检查器”面板的属性中,您可以看到默认材质刚刚变为指定的材质。MaterialsMaterials
注意:在组件上设置的任何资源(例如在本例中)将在场景加载的同时自动加载。需要设置和自动加载的资源类型也可以在自定义组件中声明,请参考获取和加载资源文档。sphere.mesh
除了在编辑器中手动添加组件外,还可以通过脚本添加组件,有关更多详细信息,请参阅组件创建和销毁文档。
节点属性对组件的影响
将节点和网格渲染器组件组合在一起后,可以通过修改节点属性来控制网格资源的渲染。也可以根据下图红线标记的属性调整节点,注意模型的旋转和缩放发生了变化。
调整前:

调整后:

如前所述,基于组件的结构组合在一起以实现功能扩展。节点和网格渲染器组件的组合如下图所示:

添加其他组件
可以向节点添加多个组件,以向节点添加更多功能。
例如,选择上例中的节点,然后单击检查器面板底部的“添加组件”按钮,然后选择“光源”-“方向光源”>以添加“定向光”组件。Sphere
接下来,设置定向光组件的属性,例如:将平行光的属性调整为红色,并注意到球体模型的颜色发生了变化,即添加到节点的定向光组件已经生效!Color

注释:
- 这只是一个更明显效果的简短示例。不建议将“方向光”组件添加到球体节点。
- 只能将一个可渲染组件添加到节点。可渲染组件包括:MeshRenderer,Sprite,Label,Graphics,Mask,RichText,UIStaticBatch等。
设置节点的可见性
引擎使用与相机匹配的更多通用节点来控制节点的可见性。当节点中设置的属性包含在相机的“可见性”属性中时,相机可以看到该节点,并且它支持 3D 和 2D 组件的混合渲染。这样可以更灵活地控制节点组件的可见性并使组显示多样化。Layer
有关层实现的详细信息,请参阅层文档。
设置节点的图层属性

节点的属性是全局且唯一的,但不同的节点可以设置相同的属性,以便由同一摄像机查看它们。开发人员可以使用引擎内置的属性,也可以使用自定义属性,可以通过单击下图中的“编辑”按钮并转到“项目设置”->“图层”页面来设置该属性。有关详细信息,请参阅图层文档。LayerLayerLayerLayer

其中 - 是为用户定义的设置提供的图层属性,用户只需在图层后填写自定义图层名称即可启用此图层属性并在节点上进行编辑。User Layer 0User Layer 19
3D建模学习工作室整理翻译,转载请标明出处!