• 组件
    • 组件的创建和销毁

    组件

    所有继承自 Component 的类都称为组件类,其对象称为组件,实现了 Cocos Creator 3D EC 系统中的组件概念。

    组件类必须是 cc 类。

    1. import { Component } from "cc";
    2. @ccclass("MyComponent")
    3. class MyComponent extends Component {
    4. }

    组件的创建和销毁

    组件的生命周期完全由结点操控。与普通类对象不同,组件不能由构造函数创建:

    1. const component = new MyComponent(); // 错误:组件无法由构造函数创建

    相反地,组件必须由结点来创建:

    1. const myComponent = node.addComponent(MyComponent);

    在此之后,称组件附加到了结点上。

    调用 Node.removeComponent 方法移除指定的组件并将其销毁。

    组件总是附加在某个结点上,除了:

    • 在组件类的构造函数结束之前;
    • 组件从结点上移除之后。
    1. import { Component } from "cc";
    2. @ccclass("MyComponent")
    3. class MyComponent extends Component {
    4. constructor () {
    5. console.log(this.node.name); // 错误:组件并未附加到结点上
    6. }
    7. public printNodeName () {
    8. console.log(this.node.name);
    9. }
    10. }
    11. // >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    12. const myComponent = node.addComponent(MyComponent);
    13. myComponent.printNodeName(); // 正确
    14. node.removeComponent();
    15. myComponent.printNodeName(); // 错误:组件并未附加到结点上