Unity Steamworks-Leaderboard

时间:2017-01-05 21:46:32

标签: c# unity3d scripting 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();
    }
}

1 个答案:

答案 0 :(得分:0)

要实现这一目标,您需要将Steamworks集成到您的游戏中。 这个api将帮助您检索游戏中的用户,成就,汽车工作等。

要让蒸汽工作在你的游戏中工作,你需要获得阀门的批准才能使你的游戏处于蒸汽状态,例如让它变绿。

这是一个教程,其中包含有关Unity3D上的steamworks的所有信息:Tutorial

如何循环浏览朋友列表并获取他们的姓名和状态?

希望这有助于您更多地了解这一主题。

修改 我找到了一些文档,实际上非常简单。

访问this网站了解更多文档。

<强> EDIT2: 好的,没有朋友,对不起。

我认为你实际上必须亲自处理。 每次用户连接到游戏服务器时,都会将它们添加到列表中,以便您轻松获取它们。 然后只需使用该列表来处理记分板。

  • Mennolp