复制预制体节点名(组件)插件

如题,项目使用中获取预制体节点、组件使用不方便。


地址:https://github.com/yuhaoyuxuan/cocos-copyPrefabName
ComponentFindUtils.ts放到脚本内
新增3.0的支持
新增2.0和3.0的例子

3赞

star star star

这个好。。适合经常用find的同学。。

大佬,这个,怎么用?选中预制再执行插件好像没什么反应

控制台没有打印吗?

没呢,点了。。。什么反应都没。。。

你的引擎版本号多少,等周一去公司了我这个案例

2.4.7~谢谢大佬

copyPrefabName.zip (938.1 KB)
v2.4.7写了个demo 测试正常

那就奇怪了。。我再看看,谢谢大佬!

你的项目可以跑起来,是我哪个步骤错了?
做预制体,挂脚本,脚本上加上那些代码,然后执行插件,但是没输出。。

现有命名 节点名字包含(node、lbl、img、item)
node = cc.Node
lbl = cc.Label
img = cc.Sprite
item = 用户自定义脚本(如果挂在多个自定义脚本 会默认取 第一个自定义脚本为类型)
根据命名规则,你命名包含这些吗?

哦,明白了,节点还要命名。。我再试试

楼主这个不错,我之前也做过find节点的工具函数,吸取了CSS的选择器思路。

定位器字符串

为了使路径表达更简洁且可靠,我引入了两个定位符号:

/: 右斜杠,代表 1 级子节点(与 cc.find 相同)
>: 大于符号,表示 1~n 级子节点

我们可以将上面 btn_home 节点的节点路径字符串改为,如下方式:

godGuide.find('Canvas > btn_home');

如果我们默认从 Canvas 节点开始检索,也可以直接写成下面这样:

//注意:确保场景中只有一个名字为 btn_home 的节点
godGuide.find('btn_home');

这将从 Canvas 节点一层层开始遍历,要提高检索节点的效率可以改为:

godGuide.find('Home > main_btns > btn_home');

如果场景中有同名节点,也可以使用 '>'符号解决,但同一层级不能有同名节点(如果你需要检索该节点的话)。

'>'符号也可与'\'混合使用,如下:

let btn_home  = godGuide.find('Home>main_btns/btn_home');
let btn_level = godGuide.find('Home>main_btns/btn_level');

需要注意的是,节点名命不要使用'>''\'这两个字符 。


Cocos Store正在举办第一期插件比赛活动,有兴趣可以来看看哦!

谢谢宝贵的经验与建议 :pray:
这个最大的优点在于自动化。方便使用。 前期规定好命名规则后,开发很方便。

1赞