我创建了一个游戏记分板,我希望您能够看到连接到服务器的玩家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();
}
}
答案 0 :(得分:0)
要实现这一目标,您需要将Steamworks集成到您的游戏中。 这个api将帮助您检索游戏中的用户,成就,汽车工作等。
要让蒸汽工作在你的游戏中工作,你需要获得阀门的批准才能使你的游戏处于蒸汽状态,例如让它变绿。
这是一个教程,其中包含有关Unity3D上的steamworks的所有信息:Tutorial。
如何循环浏览朋友列表并获取他们的姓名和状态?
希望这有助于您更多地了解这一主题。
修改强> 我找到了一些文档,实际上非常简单。
访问this网站了解更多文档。
<强> EDIT2:强> 好的,没有朋友,对不起。
我认为你实际上必须亲自处理。 每次用户连接到游戏服务器时,都会将它们添加到列表中,以便您轻松获取它们。 然后只需使用该列表来处理记分板。