Нужна помощь в выяснении, почему мое заявление if не пройдет в Unity c# - PullRequest
0 голосов
/ 02 апреля 2020

Я делаю многопользовательскую игру, и это для списка рейтинга в конце. Странно то, что 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")));
    }
}

1 Ответ

0 голосов
/ 02 апреля 2020

Да, скорее всего, 2 строки не совсем одинаковы. При сравнении строк вы можете использовать функцию string.Equal () , чтобы добавить настройки сравнения.

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

Сравнение строк с использованием чувствительных к культуре правил сортировки, инвариантной культуры и игнорирование случая сравниваемых строк .

Также стоит отметить, что использование имени для имени переменной может привести к некоторым ошибкам, поскольку UnityEngine.Object.name является свойством.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...