print_verbose
最后同步日期:2026-04-15 | Godot 官方原文 — print_verbose
print_verbose
定义
print_verbose() 是一个"安静的"打印函数——它只有在开启了详细日志(verbose)模式时才会输出信息。
如果说 print() 是普通音量的说话,print_debug() 是只在排练时说话,那 print_verbose() 就是只有你戴上耳机并调到最大音量后才能听到的"悄悄话"。它用于输出那些非常细节的信息,比如每一帧的物理计算结果、每次网络通信的数据包内容等。这些信息在正常开发时太多了,会淹没重要的调试信息,所以默认不显示。
当你需要排查非常细节的问题时,才开启详细日志模式来查看这些输出。
函数签名
// C# 中没有直接等价的 print_verbose 函数
// 可以通过检查 OS.IsDebugBuild() 或自定义标志来模拟
if (OS.IsDebugBuild())
{
GD.Print(value);
}func print_verbose(...) -> void参数说明
| 参数 | 类型 | 必需 | 说明 |
|---|---|---|---|
...(可变参数) | Variant(任意类型) | 否 | 可以传入任意数量、任意类型的值,行为与 print() 完全相同,但仅在详细日志模式下输出 |
返回值
无返回值(void)。此函数仅用于在控制台输出信息。
代码示例
基础用法:详细日志输出
using Godot;
public partial class PrintVerboseExample : Node
{
public override void _Ready()
{
// 普通输出:总会显示
GD.Print("普通信息:游戏开始");
// 详细日志输出:需要开启 verbose 模式才显示
// C# 没有直接等价,可用 OS.IsDebugBuild() 模拟
if (OS.IsDebugBuild())
{
GD.Print("详细信息:开始加载资源 res://scenes/level1.tscn");
}
}
}extends Node
func _ready():
# 普通输出:总会显示
print("普通信息:游戏开始")
# 详细日志输出:需要开启 verbose 模式才显示
print_verbose("详细信息:开始加载资源 res://scenes/level1.tscn")实际场景:记录资源加载细节
using Godot;
public partial class ResourceLoader : Node
{
public override void _Ready()
{
GD.Print("开始加载资源...");
var resources = new[] { "player.png", "enemy.png", "bgm.ogg", "tileset.tres" };
foreach (var res in resources)
{
// 详细日志:只在需要排查加载问题时才看
if (OS.IsDebugBuild())
{
GD.Print($"[VERBOSE] 正在加载: {res}");
}
}
GD.Print("所有资源加载完毕");
}
}extends Node
func _ready():
print("开始加载资源...")
var resources = ["player.png", "enemy.png", "bgm.ogg", "tileset.tres"]
for res in resources:
# 详细日志:只在需要排查加载问题时才看
print_verbose("[VERBOSE] 正在加载: " + res)
print("所有资源加载完毕")进阶用法:逐帧物理调试
using Godot;
public partial class PhysicsVerboseDebug : CharacterBody2D
{
[Export] public float ExMoveSpeed = 200f;
public override void _PhysicsProcess(double delta)
{
var direction = Input.GetVector("ui_left", "ui_right", "ui_up", "ui_down");
Velocity = direction * ExMoveSpeed;
// 详细的物理信息:数据量巨大,只在排查问题时开启
if (OS.IsDebugBuild())
{
GD.Print($"[VERBOSE] dt={delta:F6} dir={direction} vel={Velocity}");
}
MoveAndSlide();
}
}extends CharacterBody2D
@export var ex_move_speed: float = 200.0
func _physics_process(delta: float) -> void:
var direction = Input.get_vector("ui_left", "ui_right", "ui_up", "ui_down")
velocity = direction * ex_move_speed
# 详细的物理信息:数据量巨大,只在排查问题时开启
print_verbose("[VERBOSE] dt=%.6f dir=%s vel=%s" % [delta, direction, velocity])
move_and_slide()注意事项
如何开启详细日志模式:有两种方式:(1) 从命令行启动 Godot 时加上
--verbose参数;(2) 在项目设置中启用。默认情况下详细日志是关闭的,所以print_verbose()不会输出任何内容。适合输出哪些信息:
print_verbose()适合输出非常频繁或非常细节的信息,比如每帧的物理数据、每个网络数据包的内容、每个资源加载的详细过程。不适合用来输出错误或重要提示(那些应该用print()或push_error())。C# 中需要手动实现:C# 没有直接等价的
print_verbose()函数。可以通过检查OS.IsDebugBuild()或使用自定义的 verbose 标志来模拟。与
print_debug()的区别:print_debug()在编辑器运行时总会输出(不需要额外设置),而print_verbose()需要手动开启 verbose 模式才会输出。print_verbose()比print_debug()更"安静"。
