Quantcast
Channel: Cocos中文社区 - 最新主题
Viewing all articles
Browse latest Browse all 93889

chrome打印当前场景所有节点名称及节点所带组件信息

$
0
0

@1140237871 写道:

如题,水一帖,chrome打印当前creator场景所有节点名称及节点所带组件信息,不喜轻喷

这是我测试的打印结果:

这是根据ts代码转出来的js,用chrome打开creator游戏后,调出控制台,然后把这段代码复制进入运行就能看到效果了,ts文件在下面

var scene = cc.director.getScene();
var nodeList = new Array();
var total = 0;
var startTime = new Date().valueOf();
var searchNode = function (node) {
    nodeList.push(node);
    total++;
    for (var i = 0; i < node.childrenCount; i++) {
        searchNode(node.children[i]);
    }
};
var startSearchNode = function () {
    total = 0;
    startTime = new Date().valueOf();
    nodeList = new Array();
    searchNode(scene);
    console.log("searchNode total:" + total + " time:" + (new Date().valueOf() - startTime));
};
var nodeComponentMsglist = [];
var getComponentList = function () {
    nodeComponentMsglist = [];
    nodeList.forEach(function (node) {
        var obj = { nodeName: node.name, componentCount: node._components.length, componentNameListText: null };
        var componentNameList = node._components.map(function (component) {
            return component.name;
        });
        obj.componentNameListText = componentNameList.join(' ');
        nodeComponentMsglist.push(obj);
    });
};
var outputNodeList = function () {
    startSearchNode();
    getComponentList();
    console.table(nodeComponentMsglist);
};
outputNodeList();

ts 代码如下:

let scene = cc.director.getScene();
let nodeList: Array<cc.Node> = new Array<cc.Node>();
let total = 0;
let startTime = new Date().valueOf();
let searchNode = (node: cc.Node) => {
    nodeList.push(node);
    total++;    
    for (let i = 0; i < node.childrenCount; i++) {
        searchNode(node.children[i]);
    }
}

let startSearchNode = () => {
    total = 0;
    startTime = new Date().valueOf();
    nodeList = new Array<cc.Node>();
    searchNode(scene);
    console.log(`searchNode total:${total} time:${(new Date().valueOf() - startTime)}`);
}

let nodeComponentMsglist: Array<{ nodeName: string, componentCount: number, componentNameListText: string }> = [];
let getComponentList = () => {
    nodeComponentMsglist = [];
    nodeList.forEach((node) => {
        let obj = { nodeName: node.name, componentCount: node._components.length, componentNameListText: null };
        let componentNameList = node._components.map((component: cc.Component) => {
            return component.name;
        });
        obj.componentNameListText = componentNameList.join(' ');
        nodeComponentMsglist.push(obj);
    });
}

let outputNodeList = () => {
    startSearchNode();
    getComponentList();
    console.table(nodeComponentMsglist);
}

outputNodeList();

帖子: 1

参与者: 1

阅读整个主题


Viewing all articles
Browse latest Browse all 93889

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>