这次是《组件编码心得》的最后一篇,第一次我们讲到将组件分为两大类:功能型控制型;第二篇介绍了功能型组件与控制型组件的编码上需要注意的地方,最后还提到控制型组件与预制件的组合形成独立模块,这次分享我在预制件上编码、编辑时的一点心得。

1. 预制件与控制组件的关系

简单梳理一下配套的预制件与控制型组件的关系是:

肉体与灵魂
显示与控制

预制体由1~n个节点构成,就像人体的骨骼,挂载到各个节点的功能型组件则为血脉、神经以支撑整体模块的运作,而控制组件就是这个模块的灵魂。

还有一种更有意思比喻,预制件与控制组件是朋友与朋友的关系,到底那男女如何对应大家可以思考一下,欢迎留言讨论!

2. 控制组件编码心得

其实前一篇只介绍了控制组件的对内、对外要点,在编码上具体要如何去做没有细说,请看下图:

控制组件编码心得

3. 预制件编辑心得

上面讲的是控制组件的编写,我们再来看预制件的编辑,需要注意些什么:

预制件编辑心得

  1. 配套的组件与预制件文件同名、放在同一路径是为了方便管理,要走一起走,要留一起留下,天生一对!看下面的例子:

预制与组件同步

将有关联的一组预制件与组件脚本放在一个路径下,相互配套的则命名一至。

  1. 还有一点就是将控制组件挂载到预制件的根节点上,最好只挂载一个组件,由它来统领当前预制件,看下图:
    组件挂在预制根上

上图中预制体文件名预制体根节点名字组件的名字三者保持一至,当把这个预制实例化出来时,在编辑器上直接可看到它的控制组件,继续看图:

实例化预制时方便看到组件

在使用代码实例化预制件时,可以用预制体的名字索引到匹配的组件对象,看下面代码:

实例化预制,获取控制组件

  1. 最后节点命名要有意义、保持清晰层级关系这些是为了让预制件经后可维护,一套规范化的节点命名规范还是很有必要的。

我自己习惯以下划线”_”为前缀,在代码中会获取这类节点,将规范告诉UI编辑人员,遇到以下划线”_“开头的节点不需要随便删除修改,其它非下划”_“的节点可以随便操作。

保持稳定的UI树结构是因为控制型组件中会使用到getChildByName、cc.find、getComponent等函数来获取子节点,所以节点树不能随意改动,如果要修改同时也需要修改组件代码。

4. 小结

本篇主是介绍组件与预制体的结合,这也是《组件心得三部曲》的最后一篇分享。单纯写好代码并不是最重要的,探索如何高效率、高质量产出代码的方法提升生产力才是关键,且更具价值,希望我的一点经验能起到抛砖引玉的作用,欢迎留言讨论!


果觉得公众号上的文章对您或您身边的朋友有帮助,请分享给他们,愿我们一起成长!

image

最后修改日期:2018年12月11日

作者