【发布时间】:2019-10-26 07:59:17
【问题描述】:
我进行了大量研究,但似乎找不到适合我的答案。我有一个字典,其中包含我所有的全局游戏变量/状态的值(例如拾取的库存物品等),它的设置类似于Dictionary<string, object>,因为某些变量是布尔值,而其他变量是字符串、整数等。
我的问题是:在遍历字典时,如何区分它们以确定哪个是布尔值、字符串等?我尝试过类似的方法:
foreach (string key in GlobalGameVars.globals.Keys.ToList())
{
if (GlobalGameVars.globals[key].GetType() == typeof(bool))
// Do something
}
不幸的是,它告诉我对象类型和布尔类型不匹配。这是有道理的,但是有没有办法使用一个对象然后测试它的底层类型?
或者有没有更好的方法可以让我放弃使用通用对象类型?
任何帮助将不胜感激。谢谢!
【问题讨论】:
-
GlobalGameVars是如何存储的? Unity 的序列化引擎并不总是能很好地处理混合数据类型。 -
现在我只是将它作为一个公共静态字典。当我开始保存时,我计划遍历它并序列化每个值。