【发布时间】: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...没有任何变化。
我不知道发生了什么。
【问题讨论】: