这可能是一个非常愚蠢的问题,但我被困在这个问题上...
所以我有一堆布尔值,称为Monster1,monster2,...
我想使用一个for循环来切换col.name s的相应布尔值。 col.name返回monster1,monster2,...,但我不知道如何将这些字符串转换为布尔值
private void OnTriggerExit2D(Collider2D col)
{
for (var i = 0; i < 9; i++)
{
if (col.name == "monster" + i)
{
"monster" + i = false;
}
}
}
答案 0 :(得分:6)
为什么不使用布尔数组?
private void OnTriggerExit2D(Collider2D col)
{
for (var i = 0; i < 9; i++)
{
if (col.name == "monster" + i)
{
monster[i] = false;
}
}
}
答案 1 :(得分:1)
如果需要通过怪物ID引用怪物,建议使用简单的字典。
此外,请记住,字典的性能可能比数组差。除非您要处理超过10.000个怪物,否则这不是问题。
Dictionary<string, bool> Monsters = new Dictionary<string, bool>();
private void OnTriggerExit2D(Collider2D col)
{
for (var i = 0; i < 9; i++)
{
string monsterID = "monster" + i;
Monsters[monsterID] = col.name != monsterID;
}
}
那么您以后可以像这样使用它:
if(Monsters["monster3"])
// Do something...