就拿position举例:
position在节点的属性面板里,是一个Vec3类型的属性
只修改position的x y z,不会触发该属性的set函数,必须赋值一个新Vec3才可以
为了避免用户误以为直接改x y z可以有效,还把position设置成只读属性
其他属性也是这个原因,都在各自的属性对象里,要整个替换才会触发set函数
这么写对Node底层代码来说,会比较优雅,比较安逸
但是
对用户来说就比较麻烦了,例如tween要分开来写
因此我做了一个基于3.x的节点扩展,让3.x也能兼容2.x的代码写法
https://blog.csdn.net/weixin_42714632/article/details/139001551
例如3.x里这么写也可以:
this.node.x++;
this.node.opacity = 100;
this.node.color = cc.color(255,0,0,0);
this.node.scaleX = 2;
cc.tween(this.node).to(1,{x:100,opacity:100,scaleX:2,color:cc.color(255,0,0)}).start();

