Unity中foreach循环仅首次迭代输出完整内容,后续仅打印物品名如何解决?
问题原因
你遇到的现象不是代码逻辑错误,是Unity控制台的折叠相同日志功能导致的。
你的代码逻辑完全正确:玩家持有金币为12,三个物品价格分别是5、7、1,全部低于12,所以三次foreach循环都会输出You can afford this!。由于这三条日志内容完全一致,当你开启了Unity控制台顶部的Collapse开关时,相同内容的日志会被合并为一条展示,仅在条目右侧显示累计出现次数,因此你只会看到第一次循环的购买提示,后面两条被折叠隐藏了。
验证/解决方法
- 点击Unity控制台面板顶部的
Collapse按钮,取消勾选即可展示所有未折叠的日志条目 - 可以修改提示文本,把物品名称加入日志内容避免重复,示例修改如下:
if (kvp.Value <= playerGold) Debug.LogFormat("You can afford {0}!", kvp.Key); else Debug.LogFormat("Sorry, you're too broke to afford {0}!", kvp.Key);
修改后每条日志内容唯一,不会被折叠,也能更清晰地看到每个物品对应的提示。
内容的提问来源于stack exchange,提问作者SpicyBrownieMix
相关产品推荐
相关产品推荐

