【Unity】Steamクラウドセーブ対応

Steamクラウドとは、ゲームのセーブデータのファイルをSteamのサーバにアップロード・同期する機能です。フォルダ名にはユーザのIDを含める必要があり、本記事ではそれに対応したコードを紹介します。


フォルダ名について

保存ファイルを書き込む場所を決定するときは、パスが現在のSteamユーザーに対して一意であることを確認してください。 必要に応じて、ISteamUser::GetSteamIDを介してユーザーの一意のSteamIDを取得できます。

Steamworksドキュメンテーション Steamクラウド

上記の通り、ユーザが複数アカウントを切り替えてプレイした場合は、それぞれのアカウントごとにフォルダを生成する必要があります。

いい感じに保存先のパスを生成するコード

以下がそのコードです。Steamworks.NETを利用しています。

以下のようなパスが取得できます。

// Steamが有効な場合
C:/Users/YourName/AppData/LocalLow/DefaultCompany/AppName/SaveData/Steam/0123456789

// Steamが無効な場合
C:/Users/YourName/AppData/LocalLow/DefaultCompany/AppName/SaveData/Shared

ファイルの保存については自作したりサードパーティのライブラリを探してください。私の自作ライブラリも公開しています。

Steamworksの設定

Steamworksの開発者ページでは、以下のように設定します。

会社:AndGear ゲーム:Find it! Festival in the Hotel の場合


いいなと思ったら応援しよう!