使用cocos studio 2,按照其中包含的Addin Sample编译了一个带有自定义属性的Node控件
其名称为CustomNode,其中含有CustomString等自定义属性
把生成的dll放入addin下,编辑器中可以正常显示出Custom Widget下拥有这个自定义控件
自定义控件拖入场景,可以正常看到右侧自定义属性,并可设置和保存
此时场景中有一个名为MyNode的CustomNode
以文本文件格式打开MainScene.csd(即XML文件),可以看到我添加的自定义节点,其ctype为CustomNode,并且CustomString为我在界面上设置的字符串
到此为止都很正常
但选择发布为csb,其二进制中不包含CustomNode中的任何属性
表现为,在编辑器中更改CustomString内容重新选择发布,则会发现生成的csb文件没有任何改变
甚至将CustomNode的Tag数值变更保存并发布,csb也都没有变化
相反,如果不用CustomNode,使用编辑器自带的Node,则更改该Node的Tag时csb会产生变化(证明Node的属性全部被导出为csb)
求助为什么CustomNode中的任何属性都没有被导出呢?
选择导出为Json则可看到CustomNode中的属性(原因应该是使用Mono的默认序列化方法,并没有用编辑器产生二进制所以可以产生正确data)
补充:使用重载过的(为了读取CustomNode类)CSLoader读取生成的csb的话,会在读取options时崩溃。原因是CustomNode中没有offset为options的字段。