Unity 控制台无法正常工作

问题描述 投票:0回答:2

通常,当我使用 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);
        }
    }
}

` 它位于协程中,但当它位于我的代码中的任何位置时,它确实会执行相同的操作

c# unity-game-engine console stack-trace
2个回答
5
投票

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

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


0
投票

但是经过 12 年的 Unity 经验后,我遇到了同样的问题。

双击不起作用的答案-:

我目前使用的是 unity 2022.2.19f1,所以可能适用于你。

您可能需要更新包管理器中的 Visual Studio 编辑器(和/或)Unity 中的 Visual Studio 代码编辑器。

  1. 单击 Unity 顶部的“窗口”选项卡(在任务栏中)
  2. 从列表中单击“包管理器”
  3. 确保在包管理器窗口的左上角,从下拉列表中选择的包是“在项目中”。 4.向右滚动到软件包列表底部,然后单击上述每个软件包,然后单击软件包窗口右下角的更新。

希望能解决您的问题

© www.soinside.com 2019 - 2024. All rights reserved.