[Unity]Steam成就的实现

この記事は約4分で読めます。
スポンサーリンク

我想做的事情

我们将实现Steam成就功能。

スポンサーリンク

前提

这假设您已经获得了使用 SteamWorks 创建的应用的 App ID(显示应用的设置页面;商店页面无需发布)。

スポンサーリンク

工作

安装 Steamworks.NET

请从以下页面下载 Steamworks.NET。撰写本文时,最新版本为 Release 2025.162.1。

要下载的文件是位于 Assets 文件夹中的 .unitypackage 文件。

Releases · rlabrecque/Steamworks.NET
Steamworks wrapper for Unity / C#. Contribute to rlabrecque/Steamworks.NET development by creating an account on GitHub.

从 Unity 编辑器菜单中,选择 Assets → Import Package → Custom Package… 。

将出现文件选择对话框,请选择下载的 .unitypackage 文件。

稍等片刻后,将出现导入文件选择对话框,单击“导入”。

以下两项将被添加到 Assets 文件夹中:

Steamworks.NET 采用 MIT 许可证。请注意最终用户许可协议 (EULA)。

Steamworks.NET-Example 与 Release 2025.162.1 不兼容。

(如果你修复它,它就能正常工作,但我认为你无需担心这个问题。)

AppID 设置

为了发展

创建一个名为 steam_appid.txt 的文本文件

文件应该只包含 AppID 并保存。

AppID 是下面显示的数字。

将创建的 steam_appid.txt 文件放置在 Unity 项目的根目录(包含 *.sln 文件的文件夹)中。

放置(或更新)steam_appid.txt后,重新启动编辑器。

如果您是在构建后而不是从编辑器中使用它,请将上述文件放在包含已构建的可执行文件的文件夹中。

产品

对于该产品,删除 steam_appid.txt 文件。

打开 Assets\Scripts\Steamworks.NET\SteamManager.cs。

将以下行中的AppId_t.Invalid替换为(AppId_t)AppID 。例如:(AppId_t)480

if (SteamAPI.RestartAppIfNecessary(AppId_t.Invalid)) {

スポンサーリンク

SteamWorks 设置

打开目标应用的页面,然后打开成就页面。

点击新成就即可设置。(首次创建时无法设置成就图标或未成就图标。请先保存,然后再进行设置。)

这里给出的例子不使用数值。

API名称:应用程序指定的ID。该ID必须唯一。

进度:设置为“无”

显示名称:向用户显示的成就名称。

描述:向用户显示的成就描述。

隐藏?:当目标未达成时是否向用户显示此信息。

添加完必要的成就后,转到“发布”选项卡,然后单击“准备发布” ,再单击“发布到 Steam” 。

执行

可以使用以下代码解锁此成就。请将 ACHIEVEMENT_ID 替换为您在 SteamWorks 中设置的 API 名称。

if (SteamManager.Initialized) {
    SteamUserStats.SetAchievement("ACHIEVEMENT_ID");
    SteamUserStats.StoreStats();
}

至此,成就解锁机制的实现全部完成。

必须调用 SteamManager.Initialized 方法。

这有点令人困惑,但 SteamManager.Initialized 不仅仅检查初始化是否完成;它还会创建一个实例。

スポンサーリンク

奖金

检查已启动应用的 App ID

检查您在 steam_appid.txt 或类似文件中设置的 AppID 是否正常工作。

右键点击 Steam 并启动控制台。

启动目标应用。

您应该可以通过查看下面的日志找到 AppID。

顺便一提,AppID 480 是一个测试 ID,所以它没有正确设置。

游戏进程已更新:AppID 480 C:\Program Files\Unity\Hub\Editor\2021.3.44f1\Editor\Unity.exe・・・・・
スポンサーリンク

我用作参考的网站

[Unity] Steam実績をStatsを使用しないでシンプルに実装する (2024.04)
【Unity】Steamで実績を実装する方法その3~実績解除を実装する~
前書きSteamの実績を実装する方法はいろいろなサイトに載っているのですが、今後も同様の作業をすると思うので自分なりにかみ砕いてSteamの実績を導入する方法を残しておこうと思います。今回は前回設定したSteamworksの実績をソースコー...

コメント

タイトルとURLをコピーしました