包含此页的版本:
不含此页的版本:
Debug 类允许您在 Unity 编辑器中可视化信息,这些信息可能有助于您了解或调查项目在运行时发生的情况。例如,您可以使用它将消息打印到控制台窗口中,在场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,您可以放置环境、障碍物和装饰,实质上是分块设计和构建游戏。更多信息
请参阅术语表视图和游戏视图,并从脚本在编辑器中暂停游戏模式。
本页概述了 Debug 类及其在编写脚本时的常见用途。有关 Debug 类的每个成员的详尽参考,请参阅 Debug 脚本参考。
Unity 有时会将错误、警告和消息记录到控制台窗口。 这Debugclass 使您能够从自己的代码中执行完全相同的作,如以下示例所示:
Debug.Log("This is a log message.");
Debug.LogWarning("This is a warning message!");
Debug.LogError("This is an error message!");
这三种类型(错误、警告和消息)在控制台窗口中都有自己的图标类型。
写入控制台窗口的所有内容(由 Unity 或您自己的代码)也会写入日志文件。
如果在控制台中启用了 错误暂停(Error Pause),则通过Debug类导致播放模式暂停。
您还可以为这些日志方法提供第二个可选参数,以指示消息与特定的游戏对象Unity 场景中的基本对象,可以表示角色、道具、风景、相机、航路点等。游戏对象的功能由附加到它的组件定义。更多信息
请参阅术语表,如下所示:
using UnityEngine;
public class DebugExample : MonoBehaviour
{ void Start()
{
Debug.LogWarning("I come in peace!", this.gameObject);
}
}
这样做的好处是,当您在控制台中单击消息时,与该消息关联的游戏对象将在层次结构中突出显示,从而允许您识别消息与哪个游戏对象相关。在下图中,选择I come in peace!警告消息突出显示 Alien (8) 游戏对象。
这Debug类有两种方法用于在场景视图:您正在创建的世界的交互式视图。您可以使用场景视图来选择和定位场景、角色、摄像机、灯光和所有其他类型的游戏对象。更多信息
请参阅术语表和游戏视图。这些是DrawLine和DrawRay.
在此示例中,已向场景中的每个球体游戏对象添加了一个脚本,该脚本使用Debug.DrawLine表示其与 Y 等于零的平面的垂直距离。请注意,此示例中的最后一个参数是线条在编辑器中保持可见的持续时间(以秒为单位)。
using UnityEngine;
public class DebugLineExample : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
float height = transform.position.y;
Debug.DrawLine(transform.position, transform.position - Vector3.up * height, Color.magenta, 4);
}
}
场景视图中的结果如下所示:
这UnityEngine.Debug日志记录 API 不会从发布版本中剥离,并且在调用时写入日志文件。您可以使用以下命令来防止这种情况#if指令或条件属性来编译Debug依赖于仅在开发版本开发版本包括调试符号并启用性能分析器。更多信息
请参阅术语表.
以下示例使用条件属性,其脚本符号名为ENABLE_LOGS这仅在开发版本中定义:
public static class Logger {
[Conditional("ENABLE_LOGS")]
public static void Debug(string logMsg) {
UnityEngine.Debug.Log(logMsg);
}
}
有关详细信息,请参阅 Unity 中的条件编译。