【问题标题】:Unity console doesn't work properlyUnity 控制台无法正常工作
【发布时间】:2018-02-12 21:47:05
【问题描述】:

通常,当我使用 Debug.Log() 打印某些内容时,它会显示在控制台中,我可以双击它进入函数调用。此外,单击即可展开文本以显示一种调用历史记录(某个函数调用另一个函数,该函数又调用另一个函数,依此类推。直到调用 Debug.Log())。

但现在我只得到这种奇怪的行为,其中函数调用被堆栈的内存地址替换。

我还不能发布图片,所以这里是what the console looks like

我仍然可以通过扩展消息找到呼叫发生的位置,但这是一场噩梦

你能找到电话吗? 提示:它来自 PointCloudGenerator.cs 第 290 行

它不会那么糟糕,但问题是双击行为根本不起作用,尝试找出呼叫的来源非常令人沮丧。警告和错误也会发生完全相同的事情。

编辑:我使用的是 Unity 5.6.3p3,我的编辑器是 Visual Studio 2017 Enterprise

这是调用日志的地方:

private IEnumerator ReadCornerData(long capacity, CloudBounds cloudBounds)
{
    List<Vector3> corners = new List<Vector3>();
    List<Vector3> borders = new List<Vector3>();

    using (MemoryMappedFile memoryMappedFile = MemoryMappedFile.CreateOrOpen("Global\\CornerData", capacity, MemoryMappedFileAccess.ReadWrite))
    {
        using (MemoryMappedViewAccessor accessor = memoryMappedFile.CreateViewAccessor())
        {
            byte dataAvailable = 0;
            accessor.Write(0, ref dataAvailable);
            accessor.Write((int)capacity / 2, ref dataAvailable);

            int memIndex = 0;
            while (dataAvailable != 0xF)
            {
                accessor.Read(memIndex, out dataAvailable);
                yield return new WaitForEndOfFrame();
            }
            UnityEngine.Debug.Log(dataAvailable);
        }
    }
}

` 它在一个协程中,但是当它在我的代码中的任何地方时,它确实会做同样的事情

【问题讨论】:

  • 您需要发布日志显示的代码/功能。此外,您需要提及您的 IDE 和 Unity 版本。将这些编辑到您的问题中
  • @Programmer 我刚做了,非常感谢!

标签: c# unity3d console stack-trace


【解决方案1】:

右键单击控制台窗口选项卡/标题框并将堆栈跟踪日志设置为仅脚本而不是完整。

在大多数情况下,这也应该可以解决“双击打开”问题。

【讨论】:

  • “不过,这对“双击打开”功能应该没有任何影响。” 那么这个答案的意义何在呢?问题是无法双击错误打开它.....
  • @Programmer 问题在于两件事:日志消息的奇怪格式和双击功能。我的回答针对其中之一。你是说我不发帖会更好,这样 OP 就不会得到答案而不是 1/2?
  • 我并不是说这是一件坏事。 main OP 谈到并希望修复的问题是双击行为,但您的答案中没有解决。编辑:对不起。您的回答实际上应该可以解决这两个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-26
相关资源
最近更新 更多