【问题标题】:Send log to stdout in a Unity app在 Unity 应用程序中将日志发送到标准输出
【发布时间】:2018-04-30 04:06:25
【问题描述】:

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

    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 应用程序打印到标准输出?

【问题讨论】:

    标签: c# unity3d console


    【解决方案1】:

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

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

    例如:

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

    【讨论】:

    • 谢谢,总比没有好,但不是我想要的。我不想重定向 all 日志输出,而只想重定向特定消息。真的没有办法吗?
    • 不。在 Unity 中您似乎无法做到这一点。您可以全部打印,也可以不打印
    猜你喜欢
    • 2016-11-14
    • 2022-01-21
    • 2016-05-31
    • 2014-04-10
    • 2020-07-10
    • 2016-12-03
    • 1970-01-01
    • 1970-01-01
    • 2019-12-24
    相关资源
    最近更新 更多