如何使用 SteamWorks API 检索 Steam 用户名?

How to retrieve Steam username using SteamWorks API?

如何使用 Steam API(已启动 运行)在我的应用程序中获取当前使用(登录)帐户的 Steam 用户名。

Steam id 可以(例如)通过以下方式获得:

CSteamID id = SteamUser.GetSteamID();

但是找不到获取用户名的方法

账户名

获取帐户名很困难,因为据我所知没有API功能。
但是 <SteamInstallPath>/config 文件夹中有一个 SteamAppData.vdf 文件,看起来类似于:

"SteamAppData"
{
    "RememberPassword"  "<0|1>"
    "AutoLoginUser"     "<accountName>"
}

您可以使用steam_api.h中定义的SteamAPI_GetSteamInstallPath()命令获取Steam安装路径。
然后您可以读取该文件并从中提取帐户名。

玩家姓名

获取玩家名字真的很简单:

isteamfriends.h 中你会找到这个方法:

// returns the local players name - guaranteed to not be NULL.
// this is the same name as on the users community profile page
// this is stored in UTF-8 format
// like all the other interface functions that return a char *, it's important that this pointer is not saved
// off; it will eventually be free'd or re-allocated
virtual const char *GetPersonaName() = 0;

所以 SteamFriends.GetPersonaName() 应该给你玩家的名字。

SteamFriends()->GetPersonaName();