【发布时间】:2017-01-05 21:46:32
【问题描述】:
我创建了一个游戏内记分板,我希望您能够在其中看到连接到服务器 Steam 用户名的玩家。到目前为止,我已经创建了记分牌和所有内容,现在唯一的事情就是让 Steam 用户名显示,而不是我的“玩家名称在此处”文本。我已经尝试了几件事,但没有成功:(
这是记分牌脚本:
[SerializeField]
GameObject playerScoreboardItem;
[SerializeField]
Transform playerScoreboardList;
void OnEnable()
{
Player[] players = GameManager.GetAllPlayers();
foreach(Player player in players)
{
GameObject itemGO = (GameObject)Instantiate(playerScoreboardItem, playerScoreboardList);
PlayerScoreboardItem item = GetComponent<PlayerScoreboardItem>();
if(item != null)
{
item.Setup(SteamFriends.GetPersonaName());
}
}
}
void OnDisable()
{
foreach(Transform child in playerScoreboardList)
{
Destroy(child.gameObject);
}
}
}
这是 ScoreboardItem 脚本:
[SerializeField]
Text usernameText;
public void Setup(string username)
{
usernameText.text = SteamFriends.GetPersonaName();
}
}
最后一个脚本:
string username = SteamFriends.GetPersonaName();
CmdSetUsername(transform.name, username);
}
GetComponent<Player>().Setup();
}
[Command]
void CmdSetUsername (string playerID, string username)
{
Player player = GameManager.GetPlayer(playerID);
if(player == null)
{
Debug.Log(SteamFriends.GetPersonaName() + "joined!");
player.username = SteamFriends.GetPersonaName();
}
}
【问题讨论】:
-
Eeer,请注意,当您有更多信息要提供时,您可以编辑您的问题,而不是重复询问。此外,您无需等待其他人关闭您的问题 - 如果您认为这些问题与网站不再相关,您可以自行删除它们(前提是他们没有投票赞成的答案)。
-
抱歉,没找到可以删除的地方 ;(
标签: c# unity3d scripting steam