当前位置:   article > 正文

Creator实战项目TS【FlappyBird】-- Game自动添加节点脚本_flappybird辅助脚本

flappybird辅助脚本

由于总控制脚本Game管理所有脚本时,每一次都要手动添加控制的节点,比较麻烦。
在这里插入图片描述
为了解决以上问题,在Game脚本中写一个函数setConfigTs来实现自动添加。
只要是继承于脚本基类的脚本所挂的节点,都会被自动添加到Game里,由总控制脚本Game来控制。

import ConfigMgr from './ConfigMgr';
import ScriptBase from './ScriptBase'
const {ccclass, property} = cc._decorator;

@ccclass
export default class Game extends cc.Component {
	//设为私有,在编辑器上不可被编辑,外部访问不到
    private arrConfigTs:ScriptBase[]=[];  //这个数组里面存储的是 Game节点属性检查器里面拖过去的节点 的脚本。

    onLoad () {
        //从Game开始往下找每个节点
        this.setConfigTs(this.node);
    }
    
    setConfigTs(parentNode:cc.Node){
        //遍历Game底下所有孩子child
        let children  = parentNode.children;
        for(let child of children){
            //再判断child是否有孩子
            if(child.children.length !==0){
                //递归(深拷贝) 一层一层地找
                this.setConfigTs(child);
            }            
            //开始存储
            //判断当前找到的这个节点是否挂了 脚本基类类型(派生类)的脚本
            let childTs = child.getComponent(ScriptBase);
            //若脚本存在,存储到数组里面
            if(childTs){
                this.arrConfigTs.push(childTs);
            }
        }
    }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/111653
推荐阅读
相关标签
  

闽ICP备14008679号