NodeS扩展,优雅的获取节点和组件方式
大约 1 分钟
还在为 getComponent 和 getChildByName 烦恼吗?担心每次频繁的遍历消耗太浪费时间?那就来扩展一下我们的 cc.Node 吧,让你不必为了一长串 getChildByName 和 getComponent 而烦恼。使用得当也可以免去每次的遍历消耗(大量节点下)
使用说明
- 获取子节点
- node.child(“xxx”)
- node.child(“xxx/xxx”)
- node.child(“xxx”, true)
- 获取组件
- node.label 或者 node.sprite 或者 node.button 或者 node.layout
- 设置自动更新子节点缓存
- node.child_update_b = true
- 清除组件缓存
- node.label = null; ###备注说明
- 由于内部给所有获取的节点和组件都存储了缓存,所以下次获取是直接拿到缓存中的数据, 如果要更新缓存请看上面说明。
好处
- 分摊性能消耗,只在使用的第一次遍历获取,之后都是获取的缓存(可以手动/自动更新缓存)
- 简化接口,不必写一长串的 getComponent/getChildByName, 怎么方便怎么来
-> 接下来看看扩展方式
- 将 NodeS 扩展.txt 中的内容复制到 creator.d.ts 的 Node 类中(位置随意, 注意不要覆盖其他接口)
- 将 nodes.ts 脚本拖入项目中并置顶(提示:脚本和文件夹排列顺序默认是按照字母排列)
- 现在就可以随意使用啦;
github: https://github.com/1226085293/nodes