这个效率还不行?让你一行代码^ ^【破壁】系列插件05上线,drag-bind 编辑器内完成拖拽-绑定 / 自动绑定一条龙服务

drag-bind —— Cocos Creator 3.x 拖拽绑定插件

功能介绍

  • Cocos Creator 开发已经很方便了,但脚本组件属性绑定仍是一大痛点:先定义 @property、再手动把节点一个个拖进属性区。节点一多、模块一换皮,光绑定就能耗掉半天,还容易漏绑、绑错。drag-bind 就是来解决这个问题的——把"命名即绑定"变成现实,省下大量繁琐重复的低端工作,把时间留给摸鱼。

  • 拖拽即绑定:从层级管理器把节点拖进脚本组件属性区空白处,按"前缀 → 组件类型"映射自动注入 @property 并完成绑定,一次拖拽两件事全干完。

  • 右键一键批量绑定:在层级管理器右键节点,选择"手动绑定 To 脚本名",自动遍历该节点及其所有子孙节点,按前缀映射批量注入绑定;支持删除脚本属性重新绑定,解决修改预制体后需要重新绑定。

  • 前缀映射可配置:内置 19 条常用映射(node→Node、tx→Label、btn→Button、sp→Sprite 等),配置面板可增删改,随时按项目习惯调整。

  • 安全注入:自动注入到脚本内的 autobind 隔离区,不碰你手写的代码;自动补 cc import、自定义类自动尝试 import、缩进与行尾(CRLF/LF)自适应,注入后代码格式干净。

  • 剪枝选项 + 豁免列表:右键批量绑定时可跳过"不可见节点 / 挂载了自定义脚本的节点"的下级,豁免列表内的脚本名(文件名或类名均可,自动互通)继续遍历,精细控制绑定范围。

  • 不影响编辑器原生拖拽:从资源管理器拖资源(如动画 → cc.Animation、图集 → cc.Sprite)完全放行,只拦截"拖节点"场景。

  • 支持 Cocos Creator 3.8.x(3.8.5 实测),开箱即用 ,简单方便 。

使用教程 - 简单


  • 右键一键绑定(单脚本):节点只挂一个自定义脚本时,右键菜单直接显示"手动绑定 To 脚本名"


– 有些节点内部不想被添加(ative=fasle 或者勾选挂载自定义脚本跳过)

  • 预制体多次编辑后,往往需要修改脚本,很麻烦,一键重新绑定,能完美解决这个问题

  • 右键一键绑定(多脚本):节点挂多个自定义脚本时,右键出现次级菜单,选择要绑定的脚本

  • 拖拽绑定主面板:使用步骤、当前生效的前缀映射、最近操作记录(成功/跳过/拒绝一目了然)

  • 前缀映射配置:增删改"前缀 → 组件类型",保存即生效

  • 其他配置:剪枝选项(不可见 / 挂载自定义脚本时跳过其下级)+ 剪枝豁免列表

问答环节

  • 拖到脚本属性区的是资源(比如拖 SpriteFrame)会被影响吗?

回答:不会。插件只拦截"层级管理器拖节点"(拖拽数据的 types 含 cc.Node),资源拖拽完全放行,编辑器原生赋值不受影响。

  • 前缀匹配规则是什么?

回答:节点名以某前缀开头 且长度大于前缀(name.length > prefix.length && name.startsWith(prefix))。例如 btn 前缀匹配 btnClose,但节点名恰好叫 btn 时不匹配,避免误绑。

  • 豁免列表填文件名还是类名?

回答:都行。插件会自动归一化匹配(去掉非字母数字字符),文件 NewComponent-001.ts 与类名 NewComponent_001 都能被豁免识别。

  • 注入的代码在哪?会不会弄乱我的脚本?

回答:所有自动注入都收敛在脚本内 //------------------------auto-bind-------------------// 标记的隔离区内,手写代码区域不会被改动;旧版标记(autobind 无尾注释)会自动迁移。属性行之间保留恰好一个空行,行尾跟随脚本原有风格(CRLF/LF)。

  • 支持的编辑器版本?

测试了 3.8.5,其他 3.8.x 版本原则上支持。

  • 需要注意什么?

回答:1. 拖拽/右键绑定前,脚本组件需先挂到节点上(绑定的是"脚本属性区");2. 前缀映射按需配置,避免前缀过短造成误匹配;3. 右键批量绑定会触发一次脚本编译,扫描节点多时请稍候;4. 配置保存在 config/autobind.json;5. 剪枝豁免列表填写的脚本名,以脚本 @ccclass('XXX') 中的类名为准(如 @ccclass('NewComponent_001') 就填 NewComponent_001)。虽然插件也支持填文件名自动归一化匹配(NewComponent-001.ts 也能识别),但同一脚本可能类名与文件名不同(连字符会被 Cocos 转下划线),多个脚本类名相近时,填 @ccclass 类名最不易混淆;

商店地址:【破壁】drag-bind 手动/自动 脚本添加属性并绑定 优惠价:9.9 喜欢的给个好评吧~ :2:

2赞

drag-bind 插件核心功能

1. 拖拽自动绑定 将层级管理器中的节点拖入属性面板的自定义脚本区域,若节点名匹配 “前缀 → 组件类型” 映射规则,脚本自动注入对应 @property 属性并完成绑定。

2. 右键批量绑定 在层级管理器右键根节点选择 “手动绑定”,按前缀规则自动递归绑定其子节点、孙节点等整个子树,一次完成批量注入。

3. 剪枝规则([拖拽绑定 - 前缀配置] → [其他配置] 可开关)

  • 子节点不可见时跳过 :勾选后,遍历遇到 active = false 的节点,不再继续遍历其下级节点。
  • 子节点挂载自定义脚本时跳过 :勾选后,遍历遇到挂载了自定义脚本的节点,不再继续遍历其下级 —— 适用于该节点想自行绑定自己子孙的场景,避免被根节点脚本重复绑定。

4. 豁免列表 默认情况下,勾选 “子节点挂载自定义脚本时跳过其下级” 后,挂载脚本的节点其子孙一律不会被根节点绑定。但存在例外:某些通用脚本(如 customBtn )虽然挂载了自身,其子节点(如 txTime )仍希望由根节点脚本绑定。此时将这类脚本类名加入 豁免列表 ,即可在开启剪枝的同时,仍然遍历并绑定这些节点的子孙节点。

你可以动态的加载脚本,然后在游戏中使用节点名称访问节点。

//加载脚本
let className = “脚本名”
let CtrlClass: any = js.getClassByName(className)
this.node.addComponent(CtrlClass)

//获取节点下所有的子节点(注意节点名字不能重复)
public static BindNode(n: Node) {
if (!n || !isValid(n)) return null
let UI: { [Key: string]: Node } = {}
function BIND(m: Node) {
if (m != n)
UI[m.name] = m
m.children.forEach(c => BIND©)
}
BIND(n)
return UI
}

let UI = BindNode(this.node)
UI[“节点名”].active = false

按照这种方式你就不用绑定脚本了

建议标题改成 《让你一行代码》 :rofl:

:rofl:插件很好,很棒,可惜我是老古董,还是不喜欢拖拽的方式,看的我头疼

你这个挺好的,就是运行时有点性能损耗,[‘xx’]这种方式访问可读性差了点,其他没毛病
上面这种方式适合于’‘拥抱节点流和组件化编程’'流派, 不想经历 手写属性,拖动绑定的流程

有道理, 我又想起论坛的那个梗了 :11:

1赞

嗯 理解,上面这种适合快速迭代的项目

大佬依旧稳健

有个快闪编辑器插件,很古老的插件了,直接拖节点进脚本就绑定了

在这里https://forum.cocos.org/t/topic/132106/2, 是挺好的 而且支持3.8.5了. 个人不太喜欢在编辑器内写代码,一个是视线的问题,而且基本都是双屏开发 另一个是项目比较大,ts文件比较多,用vscode反而更方便…纯纯看个人喜好吧

你还是喜欢来论坛吃瓜啊

哈哈哈哈,我也不在编辑器写代码,我也是用快闪来快速绑定节点而已,你好像没挂自己的商店链接

在审核,先看看大家有什么想法, 其实前缀命名统一,对自己编码习惯还有团队都是有好处的, 调用的时候显而易见什么类型,接手其他成员的代码的时候也没那么痛苦:confounded:

已上线,只要9.9,欢迎品鉴 :2: :2:

上个推荐位咋还没人

修行之道不同,不喜欢绑定

这么说来,我这一脉属于体修 :11:

就靠这个找点乐子了哈哈

版本更新 v1.0.1

  • 修复节点拖动赋值失败问题;
  • 关闭干扰日志;