C# 变量在赋值后未更改,更改显示在 UI 中

问题描述

在我的记分板 UI 中,我有一个盒子,它只是一个图像,里面有 score_Entries 作为孩子。游戏中有 4 个孩子,每个玩家一个。当记分板启动时,我有一个函数可以分配 score_Entries Ui 元素内的文本。为此,我有一个名为 Text[] playerNames 的数组,并将我的 UI 元素拖入检查器中。

int i = 0;
foreach (Player test in PhotonNetwork.PlayerList)
{
    playerNames[i].text = test.NickName;
    allscores[i].text = 0.ToString();
    i++;
    Debug.Log("Text inside the array: " + playerNames[i].text);
    Debug.Log("Player Name: " + test.NickName);
}

如您所见,我已将第一个 Text 元素中的文本设置为等于玩家的姓名。但是,应该发生的情况是在 Debug 语句中 Player Name 行输出和数组输出中的 Text 应该向我显示存储在 test.NickName 中的字符串。说测试是玩家的名字。 playersNames[i].text should == test 目前它显示 playerNames[i] = TEST NAME,这是我在创建 UI 时的认文本。但是,在游戏中,玩家的名字正确显示为test而不是TEST NAME。

我不明白这是如何工作的,有人可以帮忙吗?

解决方法

问题是我++ 把 i++ 放在

Debug.Log("Text inside the array: " + playerNames[i].text);
Debug.Log("Player Name: " + test.NickName);
i++