美文网首页
Cocos Creator之组件的生命周期

Cocos Creator之组件的生命周期

作者: Lee_5566 | 来源:发表于2021-04-26 20:26 被阅读0次
    image.png

    组件脚本生命周期

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

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

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


    image.png
    函数介绍
    函数名 介绍
    onLoad 组件脚本的初始化阶段
    onEnable 组件或所在节点的enable属性如果由false变为true时触发,在对象被创建时如果其enable本身为true时也会被触发一次,该次触发在onload之后,start之前。
    start 组件第一次被激活后调用一次,后续不会被再次触发。
    update 游戏在每一帧渲染前触发该方法
    lateUpdate 游戏在每一帧渲染后触发该方法
    onDisable 组件或所在节点被禁用时触发该方法,即enable属性由true变成false
    onDestroy 组件被销毁时触发该方法

    创建节点

    新节点创建

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

    代码实例:

    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 方法完成。使用方法如下:

    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 判断当前节点是否已经被销毁。

    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;
        }
      },
    });
    
    image.png

    相关文章

      网友评论

          本文标题:Cocos Creator之组件的生命周期

          本文链接:https://www.haomeiwen.com/subject/qpherltx.html