【重要|官方调研】关于引擎私有变量的访问

Cocos Creator 3.8.5 社区公测版已经发布,详情请见公测贴:Cocos Creator 3.8.5 社区版公测贴

在这一个版本中,为了节省包体,我们对引擎私有变量做了压缩,压缩后的私有变量不再是原来的名字。

这个改动后,一些访问了引擎私有变量的项目,将会遇上问题。

这里想统计一下,大家都访问了哪些引擎的私有变量,如果是常用的合理访问,引擎会在 3.8.5 版本中为它们添加 getter 和 setter。

有涉及到相关需求的开发者们,请跟贴。

为了保持信息密度,与本主题无关的回复将会被隐藏! 如果有 3.8.5 相关的反馈,请去 Cocos Creator 3.8.5 社区版公测贴

注意:只有 private 的属性才有可能变。 对于 public, protected 的属性和方法,是不会改变的,不用担心。

Node._onPreDestroy
Component._onPreDestroy
在覆盖原型链上的这个方法时用到

Layout._layoutDirty用了布局但是不想更新的时候

私有变量的压缩,能节省多少,如果只有10来KB,还不如打一顿美术,让美术那边压缩呢。
如果真要压缩,可省提供选项,让我们来选择是否压缩。
如果添加getter跟serter,是否会增大包体?增大了,是不是又是一个坑

还停留在2.x的钉子户
cc.audioEngine._music.volume

_onPreDestroy 是 public,不会变的。

2.x 不用担心,2.x 不会变。

展示一下你的用法。

不能这么说,引擎大小直接影响进入场景的速度,跟美术不一样的

1、私有变量的压缩,能省几百KB,这个在3.8.5社区测试贴中可以看到。
2、代码包的体积和素材是两回事,代码包体积决定了首屏加载时间
3、常用的且需要添加setter,getter的应该只有几个,不会太多,个位数,不影响包体。

感觉还是提供压缩选项好些,毕竟一时之间不可能想得起所有用到的私有变量,一旦用到了,如果官方没提供这将直接导致无法升级引擎,如果有选项,然后再开个帖子或者别的方式,让开发者反馈用到的私用变量,然后每个版本加几个getter,serter来适应所有开发的需求,这样会好很多

嗯,开关会有的,开关关闭的情况下,变量名就不会做压缩,和原来一样。

1赞

这样就非常好啦 :wink:

能不能自己定义开关 想压缩的同学自己开 不想压缩的同学就不开啊

我一般是分离引擎的。我只想问上传微信的版本会不会压缩

由于微信的分离引擎只能传启用压缩私有变量的那一份,如果使用分离引擎,那还是不要魔改私有变量为好。
如果有魔改私有变量的,可以列下到底魔改了哪些,我们评估一下是否开放对应的接口或者有更合适的满足需求的解决方案。

好了。一般分离引擎就是因为嫌包大了,可以省几M引擎大小。项目确实不能避免有私有变量的调用,现在倒好了。直接把这条路堵了 :joy:

2.x本来包体就小

说下用到哪些private变量吧,以及为什么。

image