前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Cocos Creator之组件的生命周期

Cocos Creator之组件的生命周期

作者头像
李小白是一只喵
发布2021-04-28 11:23:53
1.1K0
发布2021-04-28 11:23:53
举报
文章被收录于专栏:算法微时光算法微时光

image.png

组件脚本生命周期

Cocos Creator组件脚本提供了生命周期的回调函数。

用户只要定义特定的回调函数,Creator 就会在特定的时期自动执行相关脚本,用户不需要手工调用它们。

目前提供给用户的生命周期回调函数主要有:

image.png

函数介绍

函数名

介绍

onLoad

组件脚本的初始化阶段

onEnable

组件或所在节点的enable属性如果由false变为true时触发,在对象被创建时如果其enable本身为true时也会被触发一次,该次触发在onload之后,start之前。

start

组件第一次被激活后调用一次,后续不会被再次触发。

update

游戏在每一帧渲染前触发该方法

lateUpdate

游戏在每一帧渲染后触发该方法

onDisable

组件或所在节点被禁用时触发该方法,即enable属性由true变成false

onDestroy

组件被销毁时触发该方法

创建节点

新节点创建

除了通过场景编辑器创建节点外,可以在脚本中动态创建节点。

代码实例:

代码语言:javascript
复制
cc.Class({
  extends: cc.Component,

  properties: {
    sprite: {
      default: null,
      type: cc.SpriteFrame,
    },
  },

  start: function () {
    // 创建节点
    var node = new cc.Node('Sprite');
    var sp = node.addComponent(cc.Sprite);

    sp.spriteFrame = this.sprite;
    node.parent = this.node;
  },
});

代码中通过new cc.Node('Sprite');创建新的节点。

克隆已有的节点

克隆已经存在的节点,通过 cc.instantiate 方法完成。使用方法如下:

代码语言:javascript
复制
cc.Class({
  extends: cc.Component,

  properties: {
    target: {
      default: null,
      type: cc.Node,
    },
  },

  start: function () {
    var scene = cc.director.getScene();
    var node = cc.instantiate(this.target);

    node.parent = scene;
    node.setPosition(0, 0);
  },
});
销毁节点

通过destroy(函数,可以销毁节点。

销毁节点并不会立刻被移除,而是在当前帧逻辑更新结束后,统一执行。

当一个节点销毁后,该节点就处于无效状态,可以通过 cc.isValid 判断当前节点是否已经被销毁。

代码语言:javascript
复制
cc.Class({
  extends: cc.Component,

  properties: {
    target: cc.Node,
  },

  start: function () {
    // 5 秒后销毁目标节点
    setTimeout(function () {
      this.target.destroy();
    }.bind(this), 5000);
  },

  update: function (dt) {
    if (cc.isValid(this.target)) {
      this.target.rotation += dt * 10.0;
    }
  },
});
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 组件脚本生命周期
  • 创建节点
    • 新节点创建
      • 克隆已有的节点
        • 销毁节点
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档