【问题标题】:Is there a way to use hyperlink in Unity's console?有没有办法在 Unity 的控制台中使用超链接?
【发布时间】:2021-10-26 11:15:30
【问题描述】:

我正在为 Unity 使用自定义记录器(log4net),遵循this 指南。这涉及使用Debug.Log() 编写一个自定义的附加程序来写入Unity 的控制台。所有这些都很好用,但问题是每当打印日志语句时,它都来自自定义附加程序。因此,当我在控制台中双击消息时,我最终打开了 appender 的代码,而不是消息来源的源代码。我想在控制台打印一个可点击的超链接到源代码的路径。(我已经有了路径)

Unity 控制台似乎已经支持可点击链接: 我只是不知道如何让它打印我想要的链接。

在 Intellij 等 IDE 中,控制台会自动解析链接,因此我尝试在统一控制台中打印源的路径,例如:

(at Assets/Scripts/MovablePlatform.cs:)

但这没有用

TL;DR

我想知道是否可以在 Unity 的控制台中打印可点击的链接,例如“http://www.google.com”或“file:///D:/Mysourcode/main.cs”

【问题讨论】:

  • 尝试在按下控制按钮的同时单击它。 (这就是它通常在 Notepad++、Visual Studio 中的工作方式。)
  • 告诉我它是否有效。
  • @Vyacheslav 我不确定你的意思......即使它不是链接,也可以使用 Ctrl 来单击它?如果是这样,那肯定是行不通的。
  • @Pac0 哎呀。早上好。
  • 误读了您的问题,@PragmaticSystematic,抱歉。

标签: c# unity3d


【解决方案1】:

富文本支持文件路径的锚标记,但似乎不支持 URL。你的例子是:

Debug.Log("<a href=\"Assets/Scripts/MovablePlatform.cs\" line=\"7\">Assets/Scripts/MovablePlatform.cs:7</a>");

【讨论】:

    【解决方案2】:

    据我所知,没有。

    这些链接在那里,您可以跳转到堆栈跟踪中导致 Debug.Log 调用的任何调用方法,您所要做的就是向下滚动。 Unity 添加此功能正是因为日志附加器,但系统完全由 Unity 管理。双击仍然会转到实际的 Debug.Log 行,但您仍然可以通过这些“超链接”访问其他行,但它们是由 Unity 自动构建的,并且没有用于自己编写这些链接的 API。

    如果您不希望您的日志附加程序丢失该信息,请不要在使用日志附加程序时执行任何导致 Unity 丢失该信息的操作。您没有包含您的代码,因此尚不清楚为什么会丢失额外的信息。还要检查您的 console settings 以及您使用的是 Unity 2019.1 或更高版本。

    【讨论】:

    • Here 是我的 appender 的粘贴箱。我不确定您所说的“统一丢失该信息”是什么意思,因为它的行为完全符合预期。当 appender 调用 Debug.Log 时,unity 会打印此调用的来源。它应该如何知道这个呼叫来自哪里?也许我错过了什么。
    • 还有LoggingEvent?几乎可以肯定,通过将内容推送到 event 中,您已经破坏了堆栈跟踪。
    • 其实我现在才注意到堆栈跟踪是intact。启动日志调用的实际文件的路径在所有日志记录功能之后打印。 LoggingEvent 是记录器内部的东西。我不知道它在里面做什么。我按照我的问题中链接的指南进行操作。如果没有LoggingEvent,我不知道如何使用记录器
    • 如果它完好无损,那么就没有问题。你只需要向下滚动(你实际上不需要让那部分更高,它会滚动)。
    • 是的。我才注意到这一点。但如果 Unity 允许我们制作自定义链接,那就太好了。
    【解决方案3】:

    建议使用开源 Unity Console 插件来解决此问题。点击console-hyperlinks

    【讨论】:

      猜你喜欢
      • 2010-11-25
      • 2022-11-22
      • 2019-07-12
      • 1970-01-01
      • 1970-01-01
      • 2019-10-20
      • 2015-05-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多