游戏内节点隐藏一般情况下是用的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);
}
推荐亲自跑一个试一试,看谁更快。
总结:频繁隐藏显示推荐使用 设置透明,缩放,移除当前显示区域等方式