(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

(:3[kanのメモ帳]


本ブログの運営者kan.kikuchiが個人で開発したゲームです!


ゲーム内からSteamのストアページを開く【Unity】【Steam】


このエントリーをはてなブックマークに追加


この記事でのバージョン
Unity 6000.0.34f1
Steamworks.NET Release 20.2.0


はじめに

今回はUnityでSteam向けのゲームを作った際に、ゲーム内でストアページを開く方法の紹介です!



ゲーム内からSteamのストアページを開く

UnityでSteam向けのゲームを開発する際はだいたいSteamworks.NETを使いますが、今回も使います。

なお、導入は以下のページよりunitypackageをダウンロードしてきて、


プロジェクトに追加するだけ。


そして、本題のSteamのストアページを開く方法ですが、

SteamFriends.ActivateGameOverlayToStoreにゲームのIDを渡して実行するだけ。

using Steamworks;//SteamUtilsやSteamFriendsを使うのに必要
//ゲームのID取得
var appId = SteamUtils.GetAppID();
//IDを元にストアページをオーバーレイで表示
SteamFriends.ActivateGameOverlayToStore(appId, EOverlayToStoreFlag.k_EOverlayToStoreFlag_None);


なお、オーバーレイはユーザー側で無効にできるので、

SteamUtils.IsOverlayEnabledでオーバーレイが有効か確認し、

無効の場合はブラウザで開くようにしとくと良いかと思います。

//ゲームのID取得
var appId = SteamUtils.GetAppID();
   
//オーバーレイが有効か、確認してから開く
if (SteamUtils.IsOverlayEnabled()) {
  SteamFriends.ActivateGameOverlayToStore(appId, EOverlayToStoreFlag.k_EOverlayToStoreFlag_None);
}
//Steamオーバーレイが無効の時は外部ブラウザでストアページを開きました
else {
  Application.OpenURL($"https://store.steampowered.com/app/{appId}");
}


これでゲーム内でストアページが開けるようになります。


ただし、SteamAPIの初期化が成功していなければ動作しませんし、



自分の環境(Mac)だと、SteamAPIの初期化が成功していても動作しなかったので、

そういう場合はSteamにアップロードしてチェックするといいかもしれません。

(自分の場合はSteam経由で起動したら表示された)