需要帮助弄清楚为什么我的 if 语句不会通过 Unity c#
Need help figuring out why my if statement won't pass in Unity c#
我正在做一款多人游戏,这是最后的排行榜。奇怪的是 if statement
没有通过,即使当我打印 gmD
和 name
时它们是相同的。
有什么建议吗?
void Awake()
{
print("scoreBoard");
foreach (string p in GManageer.deadPlayers)
{
scoreString += p + "\n";
}
scoreText.text = scoreString;
string gmD = GManageer.winner;
string name = controllsManager.username;
print(gmD + ":gmD");
print(name + ":name");
if (gmD == name)
{
print("In here too");
scoreText.text = "Yes, you won!";
PlayerPrefs.SetInt("XP", PlayerPrefs.GetInt("XP") + (int)(70 / PlayerPrefs.GetInt("Lvl")));
}
}
是的,这 2 个字符串很可能不完全相同。
比较字符串时,可以使用 string.Equal() 函数添加比较设置。
if(gmD.Equals(名字,StringComparison.InvariantCultureIgnoreCase))
使用区分区域性的排序规则、不变区域性并忽略被比较字符串的大小写来比较字符串。
还有一件小事要注意,使用 name 作为变量名可能会导致一些错误,因为 UnityEngine.Object.name 是 属性。
我正在做一款多人游戏,这是最后的排行榜。奇怪的是 if statement
没有通过,即使当我打印 gmD
和 name
时它们是相同的。
有什么建议吗?
void Awake()
{
print("scoreBoard");
foreach (string p in GManageer.deadPlayers)
{
scoreString += p + "\n";
}
scoreText.text = scoreString;
string gmD = GManageer.winner;
string name = controllsManager.username;
print(gmD + ":gmD");
print(name + ":name");
if (gmD == name)
{
print("In here too");
scoreText.text = "Yes, you won!";
PlayerPrefs.SetInt("XP", PlayerPrefs.GetInt("XP") + (int)(70 / PlayerPrefs.GetInt("Lvl")));
}
}
是的,这 2 个字符串很可能不完全相同。 比较字符串时,可以使用 string.Equal() 函数添加比较设置。
if(gmD.Equals(名字,StringComparison.InvariantCultureIgnoreCase))
使用区分区域性的排序规则、不变区域性并忽略被比较字符串的大小写来比较字符串。
还有一件小事要注意,使用 name 作为变量名可能会导致一些错误,因为 UnityEngine.Object.name 是 属性。