节点隐藏

游戏内节点隐藏一般情况下是用的active,但是我看有的帖子说官方会不推荐用active,那用什么隐藏node比较好啊

test() {

    let sum = 100001;

    let time1 = new Date().getTime();

    for (let i = 0; i < sum; i++) {

        this.node.active = i % 2 == 0 ? true : false;

    }

    let time2 = new Date().getTime();

    for (let i = 0; i < sum; i++) {

        this.node.getComponent(Sprite).enabled = i % 2 == 0 ? true : false;

    }

    let time3 = new Date().getTime();

    for (let i = 0; i < sum; i++) {

        this.node.getComponent(Sprite).color = color(255, 255, 255, i % 2 == 0 ? 0 : 255); // 1

    }

    let time4 = new Date().getTime();

    for (let i = 0; i < sum; i++) {

        this.node.setPosition(1 % 2 == 0 ? v3(0, 0) : v3(1000, 1000)); // 1

    }

    let time5 = new Date().getTime();

    for (let i = 0; i < sum; i++) {

        this.node.setScale(1 % 2 == 0 ? v3(0, 0) : v3(1, 1)); // 1

    }

    let time6 = new Date().getTime();

    for (let i = 0; i < sum; i++) {

        this.node.getComponent(UIOpacity).opacity = i % 2 == 0 ? 0 : 255;

    }

    let time7 = new Date().getTime();

    console.log('-----------Time node action', time2 - time1);

    console.log('-----------Time Sprite enabled', time3 - time2);

    console.log('-----------Time Sprite color', time4 - time3);

    console.log('-----------Time setPosion', time5 - time4);

    console.log('-----------Time setScale', time6 - time5);

    console.log('-----------Time UIOpacity', time7 - time6);

}

推荐亲自跑一个试一试,看谁更快。

总结:频繁隐藏显示推荐使用 设置透明,缩放,移除当前显示区域等方式