OS.get_name
2026/4/14大约 3 分钟
最后更新日期:2026-04-16
最后同步日期:2026-04-15 | Godot 官方原文 — OS.get_name
OS.get_name
定义
OS.get_name 返回游戏当前运行的操作系统名称——告诉你"你的游戏跑在什么系统上"。
打个比方:你开发了一款游戏,想发给朋友玩。但不同系统上某些功能不太一样(比如文件路径、按键习惯等)。GetName() 就像游戏在自我检查:"我在 Windows 上跑?好的,那我知道该怎么做了。"
在游戏开发中,这个功能常用于:根据不同平台显示不同的提示文字、适配不同系统的按键说明(Windows 用 Ctrl,Mac 用 Cmd)、处理平台特定的文件路径等。
函数签名
C#
// OS.GetName 获取当前操作系统名称
public static string GetName()GDScript
static func get_name() -> String参数说明
此方法没有参数。
返回值
String —— 当前操作系统的名称字符串,可能的返回值见下表:
| 返回值 | 对应系统 |
|---|---|
"Windows" | Windows 系统 |
"Linux" | Linux 系统 |
"macOS" | macOS 系统 |
"Android" | 安卓手机/平板 |
"iOS" | 苹果手机/平板 |
"Web" | 浏览器中运行(HTML5) |
"FreeBSD" | FreeBSD 系统 |
代码示例
基础用法:打印当前操作系统
C#
using Godot;
public partial class MyScene : Node
{
public override void _Ready()
{
string osName = OS.GetName();
GD.Print($"当前操作系统: {osName}");
// 运行结果: 当前操作系统: Windows(在 Windows 上运行时)
}
}GDScript
extends Node
func _ready():
var os_name = OS.get_name()
print("当前操作系统: ", os_name)
# 运行结果: 当前操作系统: Windows(在 Windows 上运行时)实际场景:根据平台显示不同快捷键提示
C#
using Godot;
public partial class SettingsMenu : Control
{
private Label _shortcutLabel;
public override void _Ready()
{
_shortcutLabel = GetNode<Label>("ShortcutLabel");
string osName = OS.GetName();
string saveShortcut;
if (osName == "macOS")
{
saveShortcut = "Cmd + S";
}
else
{
saveShortcut = "Ctrl + S";
}
_shortcutLabel.Text = $"保存: {saveShortcut}";
// 运行结果(Windows): 保存: Ctrl + S
// 运行结果(macOS): 保存: Cmd + S
}
}GDScript
extends Control
@onready var shortcut_label = $ShortcutLabel
func _ready():
var os_name = OS.get_name()
var save_shortcut: String
if os_name == "macOS":
save_shortcut = "Cmd + S"
else:
save_shortcut = "Ctrl + S"
shortcut_label.text = "保存: " + save_shortcut
# 运行结果(Windows): 保存: Ctrl + S
# 运行结果(macOS): 保存: Cmd + S进阶用法:多平台适配逻辑
C#
using Godot;
public partial class PlatformAdapter : Node
{
private string _platform;
private bool _isMobile;
public override void _Ready()
{
_platform = OS.GetName();
_isMobile = (_platform == "Android" || _platform == "iOS");
if (_isMobile)
{
GD.Print("移动端平台,隐藏鼠标光标");
// 运行结果: 移动端平台,隐藏鼠标光标
DisplayServer.MouseSetMode(DisplayServer.MouseMode.Hidden);
}
else if (_platform == "Web")
{
GD.Print("Web 平台,禁用本地文件功能");
// 运行结果: Web 平台,禁用本地文件功能
}
else
{
GD.Print($"桌面平台 ({_platform}),使用完整功能");
// 运行结果: 桌面平台 (Windows),使用完整功能
}
}
}GDScript
extends Node
var _platform: String
var _is_mobile: bool
func _ready():
_platform = OS.get_name()
_is_mobile = (_platform == "Android" or _platform == "iOS")
if _is_mobile:
print("移动端平台,隐藏鼠标光标")
# 运行结果: 移动端平台,隐藏鼠标光标
DisplayServer.mouse_set_mode(DisplayServer.MOUSE_MODE_HIDDEN)
elif _platform == "Web":
print("Web 平台,禁用本地文件功能")
# 运行结果: Web 平台,禁用本地文件功能
else:
print("桌面平台 (%s),使用完整功能" % _platform)
# 运行结果: 桌面平台 (Windows),使用完整功能注意事项
- 返回值是固定的字符串:不是任意字符串,只返回上表中的固定值之一。你可以放心用
==判断。 - 在编辑器中始终返回桌面平台名:即使在编辑器中预览移动端效果,
GetName()返回的仍然是你的电脑系统(如 Windows),不会返回 Android/iOS。 - 大小写敏感:
"Windows"的 W 是大写,"macOS"中的 OS 也是大写。判断时注意大小写完全匹配。 - Linux 包括各种发行版:不管是 Ubuntu、Fedora 还是 Arch,统统返回
"Linux"。
