在Unity应用

时间:2018-04-30 04:06:26

标签: c# unity3d console

我正在Unity中构建一个无头服务器应用程序。我希望它将状态消息打印到stdout。但它会将所有控制台输出定向到播放器日志。即使我试图恢复标准输出流也是如此:

    StreamWriter standardOutput = new StreamWriter(Console.OpenStandardOutput());
    standardOutput.AutoFlush = true;
    Console.SetOut(standardOutput);
    System.Console.WriteLine("Server started (this is Console output).");

播放器日志中仍然显示输出,而不是我启动应用程序的命令行(使用-batchmode和-nographics选项)。 (这是在macOS上测试的。)

有没有办法从无头Unity应用程序打印到标准版?

1 个答案:

答案 0 :(得分:3)

默认情况下,Unity不会将日志发送到标准输出。要在macO上执行此操作,请在打开它时将-logfile作为参数传递给Unity应用程序,或者如果那是您的目标,则传递给Unity编辑器。 不要为此参数提供文件名。

只需添加空-logfile参数,它就会使Unity将日志发送到sdout。

例如:

TheApp.app/Contents/MacOS/TheApp -batchmode -nographics -logfile