C# 用于循环调用字符串转换为布尔值
这可能是一个非常愚蠢的问题,但我被困在这个问题上 所以我有一群叫做怪物1,怪物2 我想使用for循环来切换col.name的相应布尔值。col.name返回monster1,monster2。。。我不知道如何把这些弦变成布尔C# 用于循环调用字符串转换为布尔值,c#,C#,这可能是一个非常愚蠢的问题,但我被困在这个问题上 所以我有一群叫做怪物1,怪物2 我想使用for循环来切换col.name的相应布尔值。col.name返回monster1,monster2。。。我不知道如何把这些弦变成布尔 private void OnTriggerExit2D(Collider2D col) { for (var i = 0; i < 9; i++) { if (col.name == "monster" + i) {
private void OnTriggerExit2D(Collider2D col)
{
for (var i = 0; i < 9; i++)
{
if (col.name == "monster" + i)
{
"monster" + i = false;
}
}
}
私有无效OnTriggerExit2D(冲突R2D列)
{
对于(变量i=0;i<9;i++)
{
如果(列名称==“怪物”+i)
{
“怪物”+i=false;
}
}
}
为什么不使用布尔数组
private void OnTriggerExit2D(Collider2D col)
{
for (var i = 0; i < 9; i++)
{
if (col.name == "monster" + i)
{
monster[i] = false;
}
}
}
私有无效OnTriggerExit2D(冲突R2D列)
{
对于(变量i=0;i<9;i++)
{
如果(列名称==“怪物”+i)
{
怪物[我]=假;
}
}
}
如果您需要根据怪物的ID引用怪物,建议使用简单的字典
另外,请记住,字典的性能可能比数组差。除非你处理的怪物超过10000个,否则这不应该是一个问题
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...