有三四个组件,在游戏生命周期中都会使用里面的update方法,但只使用一次,发现游戏运行中还是不断调用这些组件的update方法,虽然在update里面做了变量return操作。但还是担心会影响性能,毕竟是每帧都调用,有没有办法手动终止系统,不然调用这些组件的update方法吗?
有没有办法手动终止系统,不让调用这些组件的update方法吗?
只用一次为啥不写在start里面或者用事件来驱动触发那,还有你现在做法加了return我觉得对性能没有太大影响
update(dt: number) {
console.log('[gamePanel]update');
if (!this._countdownCheck) return;
这个是用来倒计时用的,也可以改,但动作有点大,想用完update就不让系统用了,刚才用了this.update=null,发现上面log不打印了,但产生出来另外一个问题,再次调用这个组件的时候,update不执行了
或者我再弄一个 update1方法,关闭的时候让update=null,然后再次弹框的时候让udpate=update1??
这样是不是有点绕路了,哈哈
你就自己记录一个开关,判断开关关闭时候return就行。这种判断boolean类型的代码我觉得可以忽略你说的效率影响
console.log 才是影响效率的东西,别在update里面写
你这个写代码的思路就是错的
this.enable = false应该就可以暂停了
不过你这性能没啥影响,如果连这个都有性能影响,那带战斗逻辑的游戏就没法做了
相反如果你频繁的添加和移除定时器,没准还会带来gc上的性能影响呢(虽然也几乎没影响)