C# Console.WriteLine与Print

C# Console.WriteLine与Print,c#,unity3d,C#,Unity3d,我知道这听起来可能是一个非常愚蠢的问题,但我很困惑,只能找到“WriteLine vs debug.log”这个问题的答案,而不是这个问题。我最初开始使用VisualStudio,在那里我学会了使用Console.WriteLine(“示例文本”);为了在屏幕上显示一个句子,我已经开始使用Unity,在那里我使用的是简单的打印(“示例文本”) 我应该用哪一个取决于我的偏好?它们是否都做相同的事情,就像“int”和“decimal”之间的差异有时并不总是明显一样?还是根据我使用的程序来使用它们?如

我知道这听起来可能是一个非常愚蠢的问题,但我很困惑,只能找到“WriteLine vs debug.log”这个问题的答案,而不是这个问题。我最初开始使用VisualStudio,在那里我学会了使用Console.WriteLine(“示例文本”);为了在屏幕上显示一个句子,我已经开始使用Unity,在那里我使用的是简单的打印(“示例文本”)

我应该用哪一个取决于我的偏好?它们是否都做相同的事情,就像“int”和“decimal”之间的差异有时并不总是明显一样?还是根据我使用的程序来使用它们?如果是后者,如果我不得不根据我使用的程序改变使用它的方式,这是否违背了它作为一种语言的目的


如果这似乎是一个毫不相关的问题,我表示歉意,但我宁愿确定,也不愿继续因为这个问题而忽略它,并进一步做错事情

对于Unity代码,我建议在类中使用静态方法,例如,等等

这些方法还有其他变体,如和,您可以在上面的第一个链接中找到。在编辑器中,您可以使用“日志”面板上方的按钮过滤日志,以仅显示所需的消息,例如,仅当其他日志消息的噪音过大时才显示错误

Unity的方法是
Debug.Log
的薄包装,它有两个缺点:

  • 它缺少上述方法的一些功能,例如在Unity编辑器中传递将调试消息绑定到对象的
    上下文
    参数的能力,以及在编辑器中按日志类型过滤的能力
  • 它是一种
    单一行为的方法,因此只能在从该方法派生的类中使用它。
    Debug
    方法可用于任何Unity代码中
还值得注意的是,所有这些日志方法都可以在运行时构建和编辑器中使用。在生成中调用日志消息时,日志消息可在
MyAppName\u Data/output\u log.txt
文件中找到,其中
MyAppName
是可执行文件的名称

在进行运行时构建时,请注意不要在代码中留下太多日志调用,尤其是在每个帧中调用的方法中,如
Update
方法。您可以使用来测试是否正在编辑器中运行


它也可以用于此。这在运行时节省了一点空间,但更为棘手。例如,您可能认为
UNITY\u EDITOR
意味着您正在编辑器中运行,但它也在运行时构建中定义

控制台
来自.NET Framework的核心库
print
是一种Unity编辑器方法,特别支持Unity类。如果您希望能够在Unity之外运行代码,您将无法使用
print
非常感谢您的回答。通常有必要在Unity之外运行它吗?假设我还必须更改其他方法,那么编辑代码的过程是否会很长,这样我就可以在其他地方运行它?您可以在自己编写的库中使用
Console.WriteLine()
,这些库可能在Unity之外使用。