print_rich
2026/4/14大约 4 分钟
最后同步日期:2026-04-15 | Godot 官方原文 — print_rich
print_rich
定义
print_rich() 和 print() 一样用于在控制台输出信息,但它支持 BBCode 格式的富文本标签。这意味着你可以给输出的文字加颜色、加粗、斜体等样式,让调试信息在控制台中更醒目、更容易辨认。
打个比方:print() 输出的是纯黑白文字,而 print_rich() 输出的是彩色加粗的文字——就像你用彩色荧光笔在笔记本上标记重点一样,不同颜色代表不同类型的信息。
函数签名
C#
// C# 中没有直接等价的 print_rich 函数
// GD.Print 不支持 BBCode 标签
// 可通过手动拼接 ANSI 转义码模拟(效果有限)GDScript
func print_rich(...) -> void参数说明
| 参数 | 类型 | 必需 | 说明 |
|---|---|---|---|
...(可变参数) | Variant(任意类型) | 否 | 可以传入任意数量、任意类型的值。如果字符串中包含 BBCode 标签(如 [color=red]...[/color]),会被解析并显示对应样式 |
返回值
无返回值(void)。此函数仅用于在控制台输出带样式的信息。
代码示例
基础用法:彩色输出
C#
using Godot;
public partial class PrintRichExample : Node
{
public override void _Ready()
{
// C# 没有直接等价函数
// 普通输出
GD.Print("这是一条普通信息");
// 需要彩色输出时,可使用 RichTextLabel 节点
// 或使用 ANSI 转义码(在支持 ANSI 的终端中有效)
GD.Print("\u001b[31m这是一条红色信息\u001b[0m");
}
}GDScript
extends Node
func _ready():
# 普通输出
print("这是一条普通信息")
# 彩色输出
print_rich("[color=red]这是一条红色信息[/color]")
# 运行结果: 这是一条红色信息(显示为红色)
# 加粗输出
print_rich("[b]这是加粗的文字[/b]")
# 组合使用:彩色 + 加粗
print_rich("[color=green][b]成功![/b][/color] 关卡加载完毕")实际场景:带颜色的调试日志
C#
using Godot;
public static class ColoredLogger
{
// C# 中模拟彩色日志(使用 ANSI 转义码)
public static void Success(string message)
{
GD.Print($"\u001b[32m[成功] {message}\u001b[0m");
}
public static void Fail(string message)
{
GD.Print($"\u001b[31m[失败] {message}\u001b[0m");
}
public static void Info(string message)
{
GD.Print($"[信息] {message}");
}
}
public partial class GameLoader : Node
{
public override void _Ready()
{
ColoredLogger.Info("开始加载游戏资源...");
// 模拟加载结果
bool playerLoaded = true;
bool enemyLoaded = false;
if (playerLoaded)
ColoredLogger.Success("玩家资源加载成功");
if (!enemyLoaded)
ColoredLogger.Fail("敌人资源加载失败");
}
}GDScript
extends Node
# 带颜色的日志工具
func log_success(message: String) -> void:
print_rich("[color=green][成功] " + message + "[/color]")
func log_fail(message: String) -> void:
print_rich("[color=red][失败] " + message + "[/color]")
func log_info(message: String) -> void:
print_rich("[color=cyan][信息] " + message + "[/color]")
func _ready():
log_info("开始加载游戏资源...")
# 模拟加载结果
var player_loaded = true
var enemy_loaded = false
if player_loaded:
log_success("玩家资源加载成功")
if not enemy_loaded:
log_fail("敌人资源加载失败")进阶用法:表格化的富文本调试信息
C#
using Godot;
public partial class StatusDebug : Node
{
public override void _Ready()
{
// 输出带样式的角色状态面板
GD.Print("===== 角色状态 =====");
GD.Print("HP: 80/100 MP: 45/60");
GD.Print("状态: 正常");
}
}GDScript
extends Node
func _ready():
# 输出带样式的角色状态面板
print_rich("[b][color=yellow]===== 角色状态 =====[/color][/b]")
print_rich("HP: [color=green]80/100[/color] MP: [color=cyan]45/60[/color]")
# 根据状态显示不同颜色
var _status = "中毒"
match _status:
"正常":
print_rich("状态: [color=green]正常[/color]")
"中毒":
print_rich("状态: [color=purple]中毒[/color]")
"冰冻":
print_rich("状态: [color=cyan]冰冻[/color]")
# 运行结果:
# ===== 角色状态 ===== (黄色加粗)
# HP: 80/100 (绿色) MP: 45/60 (青色)
# 状态: 中毒 (紫色)注意事项
支持的 BBCode 标签:
print_rich()支持常用的 BBCode 标签,包括[color=...],[b],[i],[s],[code],[url],[center],[right]等。完整列表请参考 Godot 官方文档中的 BBCode 参考。C# 没有直接等价:C# 的
GD.Print()不支持 BBCode 标签。如果需要彩色输出,可以使用 ANSI 转义码(仅在支持 ANSI 的终端中有效),或使用RichTextLabel节点在游戏画面上显示带样式的文字。标签必须正确闭合:每个开启的标签必须有对应的关闭标签。例如
[color=red]...[/color],忘记关闭会导致后续所有输出都带上该样式。仅在支持富文本的环境中有效:在 Godot 编辑器的输出面板中,BBCode 标签会被正确解析显示。但在普通终端中运行时,可能只显示原始的 BBCode 文本而不解析。
