c# - 需要帮助弄清楚为什么我的 if 语句不会在 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")));
}
}
解决方案
是的,这两个字符串很可能并不完全相同。比较字符串时,您可以使用string.Equal()函数添加比较设置。
如果(gmD.Equals(名称,StringComparison.InvariantCultureIgnoreCase))
使用区分区域性的排序规则、不变的区域性比较字符串,并忽略要比较的字符串的大小写。
还有一点需要注意的是,使用 name 作为变量名可能会导致一些错误,因为 UnityEngine.Object.name 是一个属性。
推荐阅读
- php - Vimeo API PHP 调用
- powershell - 比较来自不同目录的文件夹名称并将两个结果输出到 csv - PowerShell
- c++ - 如何使用 Arduino 去抖动位掩码读数?(不是按钮...)
- gnuplot - 使用范围时,stats 命令不返回预期值
- c# - 删除第一个事件之后的所有事件,直到第一个事件被处理
- python - 如何为这个 Jar 和 candy python 问题创建解决方案?
- php - Stripe Webhook 错误:警告:array_keys() 期望参数 1 是数组,给定字符串
- .htaccess - Mod Rewrite - 设置默认路径
- c# - 放气字符串 C#
- java - 在另一个 JFrame 上添加来自另一个 JTable 的所有行值 JTable 数据