没完全理解,先大概了解到这把,非常感谢!
应该要 私有 属性就默认不序列化。
序列化没意义啊, 又不能在外部修改到。
我前面回答了,私有属性一样能修改。
哦哦。。我没看清楚
可是还是算是个bug?
修改变量之后再编译对应的序列化值也应该更新才对吧
每次都重新读取,再赋值,估计编译更加慢得飞起了
在js里不用定义这些变量,直接用就行,就是全局滴,把这些都省略就好了。
这样没问题,或者你在 onLoad 时,直接赋值也可以,不用定义在 properties
什么 bug?序列化值是不会更新的,为什么要更新?
我也遇到这个问题了。从使用体验来说,个人觉得,改了后,应该保存下来,一直是之前的值,很不方便。坑
我这里有一个问题想咨询一下
首先我这边自己倒腾了一个自定义进度条,就一个类
然后预期的效果是直接将脚本挂到一个空节点上,然后创建出对应的子节点以及一套默认的参数
之后再通过属性检视面板来调整这个组件的具体属性
但是现在遇到一个很奇妙的问题——每次我保存代码之后之前设置的属性值都会被重置为默认值!
这个就有点儿搞心态了 



cus_progress.zip (1.9 KB)
抱歉没遇到过这种问题,检查一下组件的定义吧,参考下其他组件怎么写的,一般都不会这样。
我这边尝试着将 get set 改为常规定义: @property({type: T}) XXX: T = null
以这种方式定义的属性可以“固化”,但好像又有点儿不大…嗯…就感觉跟预期的效果有出入
比如我这儿有一个 BG_SPRITEFRAM 这个属性,我需要的是赋值之后对应的节点立马进行响应, 但不用 set 的话就要另外添加监听事件, 就感觉有点儿麻烦 
get set 无法序列化的
解决了,这个操作就有点儿费解了
最初的定义是这样写的:
_bg_size: cc.Size = cc.size(300, 30);
@property({type: cc.Size, serializable: true})
public get BG_SIZE() : cc.Size { return this._bg_size; }
public set BG_SIZE(val: cc.Size) {
this._bg_size = val;
this.reSetNodeSize();
}
按道理来讲是常规写法这应该没问题,但是,_bg_size 这个字段在这里按这个方式来写就有问题了,它应该是被当成“变量”而不是“属性”了,就是说每次都会重新初始化
这里解决方式也简单,改成这样就行了:
@property({type: cc.Size})
_bg_size: cc.Size = cc.size(300, 30);
…
所以是否意味着只要不加 @property 修饰的字段, 默认就是变量了?
嗯,只要不加修饰器,默认编辑器就识别不出来
