name: godot-dev-guide description: "Godot 4.x 完整開發指南。涵蓋 GDScript 模式、檔案格式(.gd/.tscn/.tres)、場景架構、物理/UI/音效、效能最佳化、多平臺匯出、測試。自動觸發於 Godot 相關開發。" autoInvoke: true priority: high triggers: - "godot" - "gdscript" - ".gd" - ".tscn" - ".tres" - "scene" - "node" - "CharacterBody" - "RigidBody" - "Area2D" - "Area3D" - "project.godot"
Godot 4.x 遊戲開發完整指南,專為 AI 輔助開發設計。
.gd → GDScript 程式碼(完整語言)
.tscn → 場景序列化(嚴格格式,非 GDScript)
.tres → 資源序列化(嚴格格式,非 GDScript)
⚠️ AI PITFALL:混淆 GDScript 與資源格式
# ❌ WRONG in .tres/.tscn
script = preload("res://script.gd")
var items = [1, 2, 3]
# ✅ CORRECT in .tres/.tscn
[ext_resource type="Script" path="res://script.gd" id="1"]
script = ExtResource("1")
items = Array[int]([1, 2, 3])
# 變數型別
var health: int = 100
var speed: float = 200.0
var items: Array[Item] = []
var stats: Dictionary = {}
# 函式簽名
func calculate_damage(base: int, multiplier: float) -> int:
return int(base * multiplier)
組合優先於繼承
訊號用於解耦通訊
資源用於資料配置
自動載入用於全域性系統
res://
├── project.godot
├── scenes/ # .tscn 場景
│ ├── player/
│ ├── enemies/
│ └── ui/
├── scripts/ # .gd 指令碼
├── assets/ # 資原始檔
├── autoload/ # 單例指令碼
├── resources/ # .tres 資源
└── test/ # 測試
| 2D | 3D | 用途 |
|---|---|---|
| CharacterBody2D | CharacterBody3D | 玩家/NPC 移動 |
| RigidBody2D | RigidBody3D | 物理模擬 |
| Area2D | Area3D | 碰撞檢測(無物理) |
| Sprite2D | MeshInstance3D | 視覺渲染 |
@export var speed: float = 5.0
@export_range(0, 100, 1) var health: int = 100
@export_file("*.tscn") var next_level: String
@export_group("Combat")
@export var damage: int = 10
signal health_changed(current: int, maximum: int) signal died func take_damage(amount: int) -> void: health -= amount health_changed.emit(health, max_health) if health <= 0: died.emit()想要更強大的技能外掛,就來小蔥技能站7w4.net看看吧。
@onready var sprite: Sprite2D = $Sprite2D
@onready var anim: AnimationPlayer = $AnimationPlayer
| 陷阱 | 錯誤寫法 | 正確寫法 |
|---|---|---|
| .tres 使用 preload | preload("res://x.gd") |
ExtResource("id") |
| .tres 使用 var | var x = 5 |
x = 5 |
| 未型別化陣列 | [1, 2, 3] in .tres |
Array[int]([1, 2, 3]) |
| 缺少 ext_resource | 直接使用 id | 先宣告 ext_resource |
| @onready 初始化 | 在宣告時存取其他節點 | 等到 _ready() |
| 直接修改資源 | resource.value = x |
resource.duplicate() |
| 輸入處理 | UI 和遊戲混用 _input | UI 用 _gui_input |
| 主題 | 路徑 |
|---|---|
| 專案結構 | references/01-project-structure.md |
| GDScript 模式 | references/02-gdscript-patterns.md |
| 檔案格式 | references/03-file-formats.md |
| 場景與節點 | references/04-scenes-nodes.md |
| UI 與輸入 | references/05-ui-input.md |
| 物理系統 | references/06-physics.md |
| 音效與動畫 | references/07-audio-animation.md |
| 效能最佳化 | references/08-performance.md |
| 匯出平臺 | references/09-export.md |
| 測試指南 | references/10-testing.md |
# 執行遊戲
godot --path .
# 驗證指令碼
godot --path . --check-only --script path/to/script.gd
# 無頭測試
godot --path . --headless --quit
# 匯出
godot --path . --export-release "Preset Name" builds/game.exe
Version: 1.0.0 | Last Updated: 2026-02-17
這個Skill質量很好,專注於解決Godot開發中AI容易犯錯的檔案格式問題,內容覆蓋從入門到高階的完整開發流程。優點是陷阱標註詳細、程式碼示例規範、兩輪稽核確保連結和語法正確。不足之處是某些高階測試功能的說明可以更深入。總體而言,這是一個實用且經過仔細打磨的開發指南。