2.4.2怎样让编辑器自动调用函数?

image
如图代码,我希望实现在编辑器中修改drawType或index值的时候,能在编辑器中自动调用initDraw渲染出图形,请问该怎么写?
试过set get没有生效,不知道是这种方案不得行还是我写错了?

不是吧?就这么沉了?
禁·大召唤术:@jare @渡鸦 @白玉无冰 @麒麟子 @其他大佬

@executeInEditMode

2赞

可以了,感谢大佬,nice!

这样我测试是可以的

你的get set是怎么定义的? 我的测试是可以在编辑器中直接改然后生效

确实可以,是我自己的问题,我@property修饰的是set方法一直没效
但是又有新问题了,web预览的时候又拿到的是默认值,不是编辑器设定的值

_drawType也要加@property

2赞

yes,good

1赞

差不多是最后一个问题了,每次编辑器打开都不会执行,需要自己再编辑才能展示出来,这块怎么弄

“每次编辑器打开都不会执行”,你在哪里修改?想怎么执行?大概的流程说一下

就是编辑器里选择drawType、index这些处理好了之后,关闭编辑器重新打开又是一片空白,需要重新设置值才会刷新出来。
重新打开编辑器的时候,值是对的,只是没有调用initDraw绘制出来


我这里数值是保存的,重新打开数值还在

或者将label也改成get/set, 或者像楼上一样onLoad时调用 initDraw

我onLoad去掉也是一样的,数据还是在

onLoad应该是没意义的,虽然我onLoad里也调了

你预制编辑之后保存了没?

直接放场景的,不是预制体,也保存了
目前怀疑是因为我initDraw里面是用的cc.Graphics画图所以才不得行吧?

是Graphics的问题

这样我测试是可以的,需要添加@executeInEditMode(),然后在onLoad中调用this.initDraw();

1赞

node无效?我这是测试代码,testNode是代码中动态创建的,没有声明,为了方便测试,哈哈~