中EN
概念页

GDScript 与脚本语言选择

GDScript & Scripting Languages

更新于 2026-10-16 约 2 分钟GodotGDScriptC#GDExtension脚本

Godot 官方支持 GDScript、C#,以及经 GDExtension 的 C/C++;可在同一项目混用。新手默认 GDScript;已有 C# 栈或极致性能热路径再考虑后两者。

原理

  • 脚本挂在节点上扩展该节点:继承其属性与方法(如给 Camera2D 加震屏)。
  • GDScript:为 Godot 定制,语法轻、与编辑器/文档集成最紧,静态类型可选。
  • C#:成熟,需外部 IDE;学习资源少于 GDScript;适合已有 .NET 团队。
  • GDExtension (C/C++):原生扩展,适合热路径算法、对接现有 C++ 库;构建与 ABI 成本更高。

应用

  • 玩法快速迭代 → GDScript;数值/AI 重计算或中间件 → C# / GDExtension。
  • 跨语言:官方支持同一项目多语言协作(文档见 cross-language scripting)。

取舍

选项优势代价
GDScript最快上手、文档全、热重载友好极端 CPU 密集不如原生
C#生态/工具链、强类型编辑器外工具、部分 API 差异
GDExtension性能与原生互操作构建、调试、发布复杂度
  • 初学者几乎总应先 GDScript;「先会引擎再优化语言」比反过来高效。
  • UE 对照:GDScript ≈ 蓝图+轻脚本中间带;GDExtension ≈ 模块/插件 C++。

参见

  1. Godot 官方文档(离线 HTML,stable) Godot 4.7/stable
  2. Godot 官方文档(离线 HTML,stable) Godot 4.7/stable
  3. Godot 官方文档(离线 HTML,stable) Godot 4.7/stable
  4. Godot 官方文档(离线 HTML,stable) Godot 4.7/stable
  5. docs.godotengine.org/en/stable/getting_started/step_by_step/scripting_languages.html
  6. docs.godotengine.org/en/stable/tutorials/scripting/gdscript/index.html

相关页面

游戏开发 · Godot节点与场景Nodes & ScenesGodot 把游戏抽象成「场景树」:节点是最小积木,场景是可复用的节点树蓝图;场景可嵌套实例化,同时扮演其他引擎中 Prefab 与关卡的角色。游戏开发 · GodotGodot 最佳实践与场景组织Godot Best Practices官方最佳实践系列从真实问题出发,强调 OOP 原则在节点/场景上的落地:场景声明组合、脚本声明行为;Autoload 慎用;别把一切都做成 Node。游戏开发游戏脚本系统Game Scripting脚本语言是主要用来让用户控制和定制软件行为的编程语言;在游戏引擎中,它是高层、相对易用、能方便访问引擎大多数常用功能的语言,程序员和非程序员都能用它开发新游戏或给现有游戏做 mod。GEA 先区分数据定义语言和运行时脚本语言,梳理语言分类与游戏脚本的典型特征(解释执行、轻量、快速迭代、方便),介绍 QuakeC、UnrealScript、Lua、Python、Pawn,列出从"脚本回调"到"脚本驱动整个游戏"的六种架构,再以 Naughty Dog 的 DCScript 为例讲虚拟机与原生函数接口,最后是对象引用、事件收发、面向对象脚本、脚本状态机和协作式多线程脚本(GEA4 卷 II 17.游戏开发 · UE5蓝图与 C++ 协作Blueprint & C++ InteropEpic 官方建议:多数项目混用蓝图 (Blueprint) 与 C++,以 C++ 作为基础、在其上构建蓝图类。C++ 适合“编程”——定义系统;蓝图适合“脚本”——在已有系统上定义具体行为。两者通过反射说明符互相调用:C++ 用 BlueprintCallable/BlueprintReadWrite 等暴露给蓝图,用 BlueprintImplementableEvent/BlueprintNativeEvent 让蓝图实现或覆盖 C++ 声明的函数。

被这些页面引用3 篇

输入关键词开始搜索

滚轮或双指缩放 · 拖动平移 · 双击放大 / 还原