| name | Godot Batch Operations |
| version | 1.0.0 |
| description | 提供批量操作Godot节点的能力,支持批量更新属性、重命名、删除和创建节点,大幅提升开发效率 |
Godot 批量操作技能
本技能为Godot开发者提供高效的批量节点操作能力,支持一次性对多个节点执行相同操作,大幅提升开发效率。
触发条件
- 需要对多个节点执行相同操作(如批量重命名、批量修改位置)
- 提及"批量"、"多个节点"、"一起修改"等关键词
- 需要对场景中所有特定类型的节点进行统一操作
- 需要进行大规模的节点结构重组
核心功能
1. 批量更新节点属性
一次性更新多个节点的相同属性,支持位置、旋转、缩放、可见性等所有节点属性。
2. 批量节点重命名
按照命名规则批量重命名节点,支持前缀、后缀、序号等多种命名模式。
3. 批量节点删除
根据条件批量删除节点,支持按类型、名称模式、层级关系等筛选条件。
4. 批量节点创建
基于模板批量创建节点,支持数组式批量生成和自动命名。
执行步骤
批量更新节点属性
-
确定目标节点
- 使用通配符或正则表达式匹配节点路径
- 或指定父节点下的所有子节点
- 或按节点类型筛选
-
准备属性数据
- 确定要更新的属性名称
- 准备新的属性值
- 对于复杂类型(如Vector2/3),准备完整的数据结构
-
执行批量更新
- 遍历所有匹配的节点
- 使用 update_node_property 更新每个节点
- 收集更新结果和错误信息
-
验证结果
- 检查更新成功的节点数量
- 查看失败的节点和错误原因
- 必要时回滚操作
批量重命名节点
-
选择目标节点
-
定义命名规则
- 新名称模板(如 "Enemy_001", "Enemy_002")
- 或使用前缀/后缀添加模式
-
执行重命名
-
更新引用
代码示例
示例 1: 批量移动所有敌人到指定位置
claude godot update_node_property --node_path="/root/MainScene/Enemy*" \
--property="position" --value="{\"x\": 100, \"y\": 200}"
示例 2: 批量重命名节点
claude godot batch_rename_nodes --parent_path="/root/MainScene" \
--pattern="Item_*" --new_pattern="Collectible_##"
示例 3: 批量修改多个属性
claude godot batch_update_properties --node_paths='[
"/root/MainScene/Player",
"/root/MainScene/Enemy1",
"/root/MainScene/Enemy2"
]' \
--properties='{
"modulate": "Color(1, 0, 0, 1)",
"process_mode": "Node.PROCESS_MODE_INHERIT"
}'
示例 4: 批量删除符合条件的节点
claude godot batch_delete_nodes --parent_path="/root/MainScene" \
--condition="node.visible == false"
最佳实践
✅ 应该做的
-
先测试后执行
- 先在小范围测试批量操作
- 确认效果符合预期后再大规模应用
-
使用精确的选择器
- 尽量使用具体的路径而非通配符
- 避免误操作不相关的节点
-
备份场景
-
分批处理
- 对于大量节点(100+),分批处理避免卡顿
- 每批处理50-100个节点
-
记录操作
❌ 不应该做的
-
避免在运行时修改
- 批量操作应在编辑器模式下进行
- 避免在游戏运行时执行批量操作
-
不要忽略错误
- 认真检查失败的节点和错误原因
- 不要假设所有节点都更新成功
-
避免复杂的条件嵌套
- 不要创建过于复杂的筛选条件
- 分多次简单操作比一次复杂操作更安全
-
不要修改只读属性
- 某些属性是只读的,尝试修改会导致错误
- 提前了解属性的可写性
-
避免循环引用
MCP 工具集成
本技能与以下 Godot MCP 工具深度集成:
update_node_property - 更新单个节点属性
get_node_properties - 获取节点属性
list_nodes - 列出子节点
create_node - 创建节点(批量创建时使用)
注意事项
性能考虑
- 批量操作1000+节点时可能卡顿,建议分批
- 复杂属性(如材质、脚本)更新较慢,需耐心等待
版本兼容性
- 本技能基于 Godot 4.5+ 开发
- 部分功能可能不兼容 Godot 3.x
错误处理
- 单个节点失败不会影响其他节点
- 操作完成后会返回详细的执行报告
相关资源
- Godot 官方文档: 场景与节点
- Godot MCP 工具集: 使用
claude godot --help 查看所有可用工具
- 上下文控制最佳实践: 当节点数量超过CURRENT/CHILD_COUNT_THRESHOLD时,Claude 自动批量控制