セーブデータを利用しているとバージョンアップで古いセーブデータが必要になるケースがありますよね。
そんな時に事前にバックアップして必要な時にセーブを反映する方法を発見したのでシェアしておきたいと思います。
参考にしたサイトなど
バックアップする理由
バックアップ理由としては主に「アップデート」です。
例えば過去のゲームのシステムを改良すると過去に保存していたデータが邪魔をして更新できないことがあります。
もしセーブデータの形式を変更して昔プレイしてくれていた人のデータを壊れてしまったらクレームの嵐ですよね…
そんな時に大事なのがセーブデータの移行処理です。
セーブデータの移行処理とは
セーブデータの形式を変更すると自分でその移行処理を実装する必要があります。
簡単に説明すると新しいバージョンのアプリが起動された時にセーブを読み込んで古いデータを新しい形式のセーブデータに再配置し直すようなことをします。
そのあたりは記事の意図と違うため省略するのですが、処理を記述できたとしても確認時に古いセーブデータが必要になってきますよね。
そのような時のために事前にセーブデータの取り出して保存(バックアップ)しておく方法を今回紹介したいと思います。
※ちなみにセーブデータはPlayerPrefsを用いている前提です
エディタ上のゲームデータの保存場所
セーブデータってどこかのフォルダに入ってそうですよね。
しかし違うんです…それは
レジストリです!
ではまずレジストリについてご説明します。
レジストリとは
Windowsでアプリケーションごとにアプリ設定などを保存しておくためのスペースです。
これはフォルダ内ではなく「レジストリ エディター」と呼ばれるソフトを使って確認したりすることができます。
レジストリエディターを開いてみる
Windowsの検索窓で「レジストリ エディター」と検索するとでてくるのでそれを開きます。
こんな感じです。
レジストリエディタ利用時の注意点
これからレジストリエディタ内を確認していきます。
レジストリはシステム用の操作となりますので不用意に変更したりすると他のソフトやシステムに問題が発生するリスクがあります。
必ず操作するときは慎重に操作してください。
レジストリエディタ内でセーブデータを確認する
アプリを開くとこのような画面になっています。
エディタで開発しているゲームの保存場所は下記です。
コンピューター/HKEY_CURRENT_USER/Software/Unity/UnityEditor/[開発者名]/[アプリ名]
まず「HKEY_CURRENT_USER」なのでそこから階層順に辿っていきます。
すると「UnityEditor」の下のフォルダにご自身の保存されているゲームなどのフォルダが存在するはずです。
ここでは名前を伏せていますが、黒で塗りつぶしているところが会社や開発者の名前で赤く伏せているところがアプリの名前です。
今回は目的のアプリの名前を選択してください。
するとレジストリエディタ右側の画面に保存されているセーブデータ内容が表示されます。
コメント