Engine.get_version_info
2026/4/14大约 4 分钟
最后更新日期:2026-04-16
最后同步日期:2026-04-15 | Godot 官方原文 — Engine.get_version_info
Engine.get_version_info
定义
Engine.get_version_info 返回当前 Godot 引擎的版本详细信息——告诉你游戏是用哪个版本的 Godot 创建的。
打个比方:你买了一台电器,背面有个铭牌写着"型号 X200、生产日期 2025 年、批次号 12345"。GetVersionInfo() 就是 Godot 引擎的"铭牌",告诉你它的版本号、是正式版还是开发版等。
在游戏开发中,这个功能常用于:调试时确认引擎版本、在"关于"页面显示引擎信息、针对不同版本做兼容处理等。
函数签名
C#
// Engine.GetVersionInfo 获取引擎版本信息
public static Dictionary GetVersionInfo()GDScript
static func get_version_info() -> Dictionary参数说明
此方法没有参数。
返回值
Dictionary —— 包含以下键的字典:
| 键 | 类型 | 说明 | 示例 |
|---|---|---|---|
major | int | 主版本号 | 4 |
minor | int | 次版本号 | 6 |
patch | int | 补丁号 | 0 |
hex | int | 十六进制编码的版本号 | 0x40600 |
status | String | 版本状态 | "stable"(正式版)、"beta"、"dev" 等 |
build | String | 构建类型 | "official"(官方构建)、"custom" |
hash | String | Git 提交哈希 | "abc123def456..." |
timestamp | int | 构建时间戳(Unix 时间) | 1713244800 |
string | String | 完整版本字符串 | "4.6.stable.official.abc123d" |
代码示例
基础用法:打印引擎版本
C#
using Godot;
public partial class MyScene : Node
{
public override void _Ready()
{
var info = Engine.GetVersionInfo();
GD.Print($"Godot 版本: {info["major"]}.{info["minor"]}.{info["patch"]}");
// 运行结果: Godot 版本: 4.6.0
GD.Print($"版本状态: {info["status"]}");
// 运行结果: 版本状态: stable
GD.Print($"完整版本: {info["string"]}");
// 运行结果: 完整版本: 4.6.stable.official.abc123def
}
}GDScript
extends Node
func _ready():
var info = Engine.get_version_info()
print("Godot 版本: ", info["major"], ".", info["minor"], ".", info["patch"])
# 运行结果: Godot 版本: 4.6.0
print("版本状态: ", info["status"])
# 运行结果: 版本状态: stable
print("完整版本: ", info["string"])
# 运行结果: 完整版本: 4.6.stable.official.abc123def实际场景:在"关于"页面显示引擎信息
C#
using Godot;
public partial class AboutPage : Control
{
private RichTextLabel _engineInfoLabel;
public override void _Ready()
{
_engineInfoLabel = GetNode<RichTextLabel>("EngineInfoLabel");
var info = Engine.GetVersionInfo();
string engineText = $"引擎: Godot {info["major"]}.{info["minor"]}.{info["patch"]}\n" +
$"状态: {info["status"]}\n" +
$"构建: {info["build"]}\n" +
$"提交: {info["hash"]}";
_engineInfoLabel.Text = engineText;
// 运行结果(显示在界面上):
// 引擎: Godot 4.6.0
// 状态: stable
// 构建: official
// 提交: abc123def456...
}
}GDScript
extends Control
@onready var engine_info_label = $EngineInfoLabel
func _ready():
var info = Engine.get_version_info()
var engine_text = "引擎: Godot %s.%s.%s\n" % [info["major"], info["minor"], info["patch"]]
engine_text += "状态: %s\n" % info["status"]
engine_text += "构建: %s\n" % info["build"]
engine_text += "提交: %s" % info["hash"]
engine_info_label.text = engine_text
# 运行结果(显示在界面上):
# 引擎: Godot 4.6.0
# 状态: stable
# 构建: official
# 提交: abc123def456...进阶用法:版本兼容性检查
C#
using Godot;
public partial class VersionCheck : Node
{
public override void _Ready()
{
var info = Engine.GetVersionInfo();
int major = (int)info["major"];
int minor = (int)info["minor"];
// 检查是否满足最低版本要求(Godot 4.4+)
if (major < 4 || (major == 4 && minor < 4))
{
GD.PrintErr($"警告: 当前 Godot 版本 {major}.{minor} 过低,建议使用 4.4 或更高版本");
// 运行结果: 警告: 当前 Godot 版本 4.3 过低,建议使用 4.4 或更高版本
}
else
{
GD.Print($"引擎版本检查通过: {major}.{minor}");
// 运行结果: 引擎版本检查通过: 4.6
}
// 检查是否为正式版
string status = (string)info["status"];
if (status != "stable")
{
GD.Print($"注意: 当前使用的是非正式版本 ({status}),可能存在不稳定因素");
// 运行结果: 注意: 当前使用的是非正式版本 (beta),可能存在不稳定因素
}
}
}GDScript
extends Node
func _ready():
var info = Engine.get_version_info()
var major = info["major"]
var minor = info["minor"]
# 检查是否满足最低版本要求(Godot 4.4+)
if major < 4 or (major == 4 and minor < 4):
push_warning("警告: 当前 Godot 版本 %s.%s 过低,建议使用 4.4 或更高版本" % [major, minor])
# 运行结果: 警告: 当前 Godot 版本 4.3 过低,建议使用 4.4 或更高版本
else:
print("引擎版本检查通过: %s.%s" % [major, minor])
# 运行结果: 引擎版本检查通过: 4.6
# 检查是否为正式版
var status = info["status"]
if status != "stable":
print("注意: 当前使用的是非正式版本 (%s),可能存在不稳定因素" % status)
# 运行结果: 注意: 当前使用的是非正式版本 (beta),可能存在不稳定因素注意事项
- 字典中的值类型不同:
major、minor、patch是整数,status、build、string是字符串,使用时注意类型转换。 - 版本字符串格式:
string字段的格式通常是主版本.次版本.状态.构建类型.提交哈希,如"4.6.stable.official.abc123d"。 hex字段可以快速比较版本:十六进制编码让版本比较更简单,比如0x40600>0x40400表示 4.6 > 4.4。- 自定义构建的信息不同:如果你自己编译了 Godot 引擎,
build字段会显示"custom"而不是"official"。
