跳至主要內容

NodeS扩展,优雅的获取节点和组件方式

muzzik大约 1 分钟实用工具CocosCocosCreator

还在为 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 类中(位置随意, 注意不要覆盖其他接口)

📣 觉得很赞?分享给你的朋友吧!