【发布时间】:2021-06-26 08:02:18
【问题描述】:
在我的记分牌 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 元素中的文本设置为玩家的姓名。然而,应该发生的是在调试语句中播放器名称行输出和数组输出中的文本应该显示存储在test.NickName 中的字符串。说测试是玩家的名字。 playersNames[i].text should == test 目前它显示 playerNames[i] = TEST NAME 这是我创建 UI 时的默认文本。但是,在游戏中,玩家的名字正确显示为 test 而不是 TEST NAME。
我不明白这是如何工作的,有人可以帮忙吗?
【问题讨论】:
-
在分配数组和记录之间对您的
i++有点困惑...您将始终尝试记录数组的 next 项...不是你刚刚分配的那些 -
我首先对逻辑进行了编码,然后添加了 Debug 语句以查看哪里出错了。我错过了我在语句中使用 i