为什么Unity的Debug.Log()有些case不行?
Why do some cases of Unity's Debug.Log() not work?
简而言之:
在我游戏代码的某处,我使用 Debug.Log 来显示列表的长度,并显示有用的调试消息。由于某种原因,只显示了列表的长度,原因不明。
更多详情:
这是我的代码:
public override void UpdateTurn()
{
states.Add(currentState);
Debug.Log(states.Count);
Debug.Log("Hello");
(这个功能还有很多,但我认为它不相关)。
该方法属于class,“CannonScript”,继承自“BreakableScript”,“BreakableScript”继承自“TurnBasedObjectScript”。
当按下 UI 按钮时,名为“TurnManager”的对象会遍历游戏中的所有“TurnBasedObjectScript”并调用此函数(“UpdateTurn()”)。
我的问题:
- 当我第一次按下按钮时,我得到输出“1”和“Hello”。
- 当我第二次按下它时,我得到了输出“2”。 没有“你好”
这没有意义。
如您所见,代码中没有条件语句或任何可能改变流程的内容。然而,Log(states.Count) 有效,而另一个无效。
我试过了:
- 正在更改顺序。仍然只有打印 states.Count.
的那个
- 我尝试打印其他类型(也许问题是我正在打印一个字符串,出于某种原因...?)但是没有。
- 然而,当我打印 (states.Count + " aaa") 时,它每次都会出现在控制台中。
- 正在重新启动 Unity,删除脚本并将其重新添加到游戏对象...没有任何变化。
我不知道发生了什么。
听起来您在控制台上启用了折叠功能,这样就不会多次打印相同的消息。禁用它应该可以解决问题
简而言之: 在我游戏代码的某处,我使用 Debug.Log 来显示列表的长度,并显示有用的调试消息。由于某种原因,只显示了列表的长度,原因不明。
更多详情: 这是我的代码:
public override void UpdateTurn()
{
states.Add(currentState);
Debug.Log(states.Count);
Debug.Log("Hello");
(这个功能还有很多,但我认为它不相关)。
该方法属于class,“CannonScript”,继承自“BreakableScript”,“BreakableScript”继承自“TurnBasedObjectScript”。 当按下 UI 按钮时,名为“TurnManager”的对象会遍历游戏中的所有“TurnBasedObjectScript”并调用此函数(“UpdateTurn()”)。
我的问题:
- 当我第一次按下按钮时,我得到输出“1”和“Hello”。
- 当我第二次按下它时,我得到了输出“2”。 没有“你好”
这没有意义。
如您所见,代码中没有条件语句或任何可能改变流程的内容。然而,Log(states.Count) 有效,而另一个无效。
我试过了:
- 正在更改顺序。仍然只有打印 states.Count. 的那个
- 我尝试打印其他类型(也许问题是我正在打印一个字符串,出于某种原因...?)但是没有。
- 然而,当我打印 (states.Count + " aaa") 时,它每次都会出现在控制台中。
- 正在重新启动 Unity,删除脚本并将其重新添加到游戏对象...没有任何变化。
我不知道发生了什么。
听起来您在控制台上启用了折叠功能,这样就不会多次打印相同的消息。禁用它应该可以解决问题