在学习cocos creator的demo的时候,将脚本绑定场景后,再修改脚本中属性值,遇到了属性值不生效的情况,具体如下:
设置墙的高度,作为初始属性,如下:
properties: {
player:{
default:null,
type:cc.Node
},
playerJumpHeight:30,
wallWidth:100,
},
wallWidth设置为100,然后绑定场景,如下:
打开chrome,进行测试,如下:
发现过高的估计了墙的厚度,如下:
于是将js文件中wallWidth调整为90,如下:
properties: {
player:{
default:null,
type:cc.Node
},
playerJumpHeight:30,
wallWidth:90,
},
编译,刷新,再次测试,如下:
发现代码中已经发生了变化,但是弹出的属性依然是100
经过排查,发现问题的关键是ccc中插件处的值没有更改导致的,如下:
在ccs中检查js脚本发现已经为90了,但是点Canvas查看挂载的脚本组件,发现Wall Width依然为100,此处改为80,保存,接着测试,如下:
发现已经改为80了,此时代码依然为90,没有做任何改动。
小结:
1、ccs的属性在脚本挂载的时候就确定了,后期脚本变动时ccs无法自动同步
2、需要了解学习ccs中脚本的相关加载顺序
3、暂时不清楚是个bug还是故意为之,反正是个坑,坑了我2个小时,哼