组件

所有继承自 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(); // 错误:组件并未附加到结点上