需要帮助弄清楚为什么我的if语句无法在Unity c#中通过

问题描述 投票:-1回答:1

我正在制作多人游戏,这是最后的排名列表。奇怪的是,即使我打印if statementgmD时它们都一样,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")));
    }
}
c# unity3d photon
1个回答
0
投票

是,很可能两个字符串不完全相同。比较字符串时,可以使用string.Equal()功能添加比较设置。

if(gmD.Equals(name,StringComparison.InvariantCultureIgnoreCase))

比较字符串,使用区分区域性排序规则,不变区域性,并忽略要比较的字符串的大小写。

还有一点要注意的是,由于您的变量名使用名称,由于UnityEngine.Object.name是属性,因此可能会导致一些错误。

© www.soinside.com 2019 - 2024. All rights reserved.