Godot 3.x 项目快速迁移至 Godot 4(GDScript 2.0 适配指南)

解决 Godot 版本升级后的代码兼容性问题:通过 AI 将 Godot 3.x 的旧版语法自动转换为 Godot 4 (GDScript 2.0) 标准,重点解决标注、Tween 动画和信号连接的断层。

为什么需要这个技能

从 Godot 3 升级到 Godot 4 并非简单的版本更新,而是经历了 GDScript 2.0 的重大重构。很多核心语法发生了变化,直接升级项目会导致大量编译错误。

最典型的痛点包括:原有的 export 关键字失效、Tween 节点被弃用以及 yield 协程机制的改变。如果手动逐一修改,在大型项目中效率极低且容易遗漏。本技能让 AI 充当迁移专家,快速识别旧语法并精准重构为 Godot 4 的最佳实践。

适用场景

  • 将旧有的 Godot 3 项目移植到 Godot 4 引擎时。
  • 升级版本后出现大量语法错误(Syntax Errors)需要批量修复时。
  • 需要将旧版的 Tween 节点逻辑转换为新的 create_tween() 代码流时。
  • export 变量更新为最新的 @export 标注形式。

核心工作流

  1. 标注更新:将旧的关键字转换为以 @ 开头的标注。例如 export var @export varonready var @onready var
  2. 属性访问重构:将传统的 setget 模式改为行内 setter/getter 语法。
  3. 动画系统迁移:删除 Tween 节点依赖,改为使用 create_tween() 创建临时补间动画对象。
  4. 信号与协程转换:将基于字符串的 connect 转换为可调用对象(Callables),并将 yield 替换为 await

语法对比示例

Tween 系统迁移:

# Godot 3 (旧)
$Tween.interpolate_property(...)
$Tween.start()

# Godot 4 (新)
var tween = create_tween()
tween.tween_property($Sprite, "position", Vector2(100, 100), 1.0)

信号连接迁移:

# Godot 3 (旧)
connect("pressed", self, "_on_pressed")

# Godot 4 (新)
pressed.connect(_on_pressed)

协程迁移:

# Godot 3 (旧)
yield(get_tree().create_timer(1.0), "timeout")

# Godot 4 (新)
await get_tree().create_timer(1.0).timeout

下载和安装

下载 godot-4-migration 中文版 Skill ZIP

解压后将目录放入你的 AI 工具 skills 文件夹,重启工具后即可使用。具体路径参考内附的 USAGE.zh.md

你可能还需要

暂无推荐