【问题标题】:Why do some cases of Unity's Debug.Log() not work?为什么 Unity 的 Debug.Log() 的某些情况不起作用?
【发布时间】:2020-12-16 10:35:36
【问题描述】:

简而言之: 在我的游戏代码的某处,我使用 Debug.Log 来显示列表的长度,并显示有用的调试消息。出于某种原因,仅显示了列表的长度,没有明显的原因。

更多详情: 这是我的代码:

    public override void UpdateTurn()
    {
        states.Add(currentState);
        Debug.Log(states.Count);
        Debug.Log("Hello");

(这个功能还有很多,但我不认为它是相关的)。

该方法属于“CannonScript”类,它继承自“BreakableScript”,“BreakableScript”继承自“TurnBasedObjectScript”。 当按下 UI 按钮时,一个名为“TurnManager”的对象会遍历游戏中的所有“TurnBasedObjectScript”并调用此函数(“UpdateTurn()”)。

我的问题:

  • 当我第一次按下按钮时,我得到输出“1”和“Hello”。
  • 当我第二次按下它时,我得到输出“2”。 没有“你好”。

这毫无意义。

如您所见,代码中没有条件或任何可能改变流程的东西。然而,Log(states.Count) 有效,而另一个无效。

我试过了:

  • 更改顺序。仍然只有打印 states.Count 的那个。
  • 我尝试打印其他类型(也许问题是我正在打印一个字符串,出于某种原因...?)但没有。
  • 但是,当我打印 (states.Count + "aaa") 时,它每次都会显示在控制台中。
  • 重新启动 Unity,删除脚本并将其重新添加到 GameObject...没有任何变化。

我不知道发生了什么。

【问题讨论】:

    标签: unity3d debugging console


    【解决方案1】:

    听起来您在控制台上启用了折叠功能,这样就不会多次打印相同的消息。禁用它应该可以解决问题

    【讨论】:

    • 就是这样。非常感谢,我很困惑:D
    猜你喜欢
    • 2021-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-18
    • 2021-11-20
    • 1970-01-01
    • 2011-03-10
    • 1970-01-01
    相关资源
    最近更新 更多