我知道这听起来可能是个很蠢的问题,但我很困惑,只能找到“WriteLine vs debug.log”这个问题的答案,而不是这个问题。我最初开始使用Visual,在那里我学会了使用Console.WriteLine (“示例文本”);在屏幕上显示了一个句子,但是我已经开始使用统一,在那里我可以使用简单的打印(“示例文本”);
这仅仅是因为我应该选择哪一种呢?他们都在做同样的事情吗,就像'int‘和’十进制‘之间的区别有时并不总是显而易见的那样吗?或者我是这样使用它们,取决于我所使用的程序?如果后者是这样的话,如果我必须根据我使用的是哪个程序来改变使用它的方式,这难道不违背它作为一种语言的目的吗?
如果这似乎是一个无关紧要的问题,我很抱歉,但我宁愿确定,也不愿继续把它置之不理,因此继续做错事。
发布于 2018-02-06 00:47:33
对于统一代码,我建议在Debug类中使用静态方法,如Debug.Log、Debug.LogFormat等。
在这些方法上还有其他变体,如Debug.LogWarning和Debug.LogError,您可以在上面的第一个链接中找到它们。在“编辑器”中,您可以使用日志面板上的按钮筛选日志,以仅显示所需的消息,例如,只有在其他日志消息产生太多噪声时才会出现错误。
Unity的MonoBehaviour.print方法是围绕Debug.Log的一个很薄的包装器,有两个缺点:
context参数的能力,以及在编辑器中按日志类型进行筛选的能力。MonoBehaviour的一个方法,所以您只能在派生的类中使用它。Debug方法可以在任何统一代码中使用。还值得注意的是,所有这些日志方法都可以在运行时构建和编辑器中使用。当在构建中调用日志消息时,日志消息在MyAppName_Data/output_log.txt文件中可用,其中MyAppName是可执行文件的名称。
在进行运行时构建时,请注意不要在代码中留下太多的日志调用,特别是在像Update方法这样的每个框架中调用的方法中。您可以使用Application.isEditor测试是否在编辑器中运行。
使用平台相关编译也是可能的。这在运行时节省了一些空间,但更棘手。例如,您可能认为UNITY_EDITOR意味着您正在编辑器中运行,但它也是在运行时构建中定义的!
https://stackoverflow.com/questions/48631613
复制相似问题