相信很多新手朋友,肯定会问,CocosCreator 中什么是节点?什么是组件?
一、什么是组件(Component)?
Cocos Creator 3.8 的工作流程是以组件式开发为核心,即以组合而非继承的方式进行游戏中各种元素的构建,被称为组件式架构(Entity-Component System)。
所有继承自Component的类都称为组件类,其对象称为组件,组件是由引擎创建,组件类必须是 cc 类。
例如:
import { Component } from 'cc';
@ccclass("MyComponent")
class MyComponent extends Component {
}
二、什么是节点(Node)?
节点是承载组件的实体,我们通过将具有各种功能的组件挂载到节点上,来让节点具有各式各样的表现和功能。
节点是场景的基础组成单位。节点之间是树状的组织关系,每个节点可以有多个子节点。
节点特性:
节点包含一组基础属性(位移、旋转、缩放),节点之间通过一组相对变换关系组织在一起。
节点间的更新顺序是逐级更新的,子节点的更新依赖于父节点,子节点跟随父节点变换。
节点上可以添加组件,将多个组件与节点关联在一起。
三、组件的创建和销毁
组件的生命周期完全由节点操控,与普通类对象不同,组件不能由构造函数创建:
const component = new NewComponent(); // 错误:组件无法由构造函数创建
组件必须由节点来创建,通过如下方法将组件添加到节点上:
const newComponent = node.addComponent(NewComponent);
组件不需要的时候,通过如下方法移除指定的组件并将其销毁:
node.removeComponent(newComponent)
四、组件执行顺序
在同一个节点上的组件执行顺序,可以通过设置组件的 executionOrder来实现。
executionOrder 越小