SaveData
・今更誰も教えてくれない、Unityにおけるアセット読み込みについての基礎知識(外部サイト)
・AssetBundleを完全に理解する(外部サイト)
ここには載せていないものもありますし、サイトや先生によって勧める保存方法は違うと思います。
とりあえずここではJSONでの保存もしくはAddressablesでの保存方法を勧めておきます。
(ランキング機能などPlayFab・IT志望ならFirebaseでの保存も試していいと思います。)
1.アセット管理
大規模プロジェクトや動的アセット管理が必要な場合。
- 概要:
- 動的なアセット管理と最適化が可能なUnityの新しいアセット管理システム。
- 処理:
- アセットをグループ化し、必要に応じて動的にロード・アンロードする。
- 利点:
- メモリ使用量を最適化できる。
- ロード時間を最小限に抑えられる。
- ビルドサイズが小さくなる。
- 注意点:
- 初期セットアップに手間がかかることがある。
- アセットの管理に細心の注意が必要。
AssetBundle
DLCや動的コンテンツ更新が必要な場合。
- 概要:
- 外部のアセットを事前にパッケージ化し、実行時にロード可能な仕組み。
- 処理:
- アセットバンドルをビルドしてダウンロードやロードを行う。
- 利点:
- DLCや動的コンテンツの提供が容易。
- ネットワーク越しにアセットをダウンロードできる。
- 注意点:
- ビルド時に手動でアセットバンドルを管理する必要がある。
- バージョン管理と更新処理が必要。

AssetDatabase
エディタスクリプトやツール開発の場合。
- 概要:
- Unityエディタ内でアセットの操作と管理を行うAPI。
- 処理:
- 利点:
- エディタでのアセットの自動化された操作が可能。
- カスタムインスペクターやツールの作成に適している。
- 注意点:
- 実行時のビルドでは使用できない。
- エディタ依存性がある。
Resources
小規模プロジェクトやプロトタイプの場合。
-
概要 :
アプリケーションのビルド時にリソースとして組み込まれる特定のフォルダのこと。
-
処理:
アプリビルド時に、このフォルダ内のアセットは特別な変換処理を経て、アプリの実行可能ファイルに直接格納される。
-
利点:
簡単なアクセスと使用が可能。
-
注意点:
全てのアセットがビルドに含まれるため、メモリ管理が難しい。

StreamingAssets
外部から変更可能なアセットが必要な場合。
- 概要:
アプリケーションのビルド時にそのまま含まれる外部ファイルのフォルダ。
-
処理:
アプリビルド時に変更なしで含まれる。
- 利点:
- 外部からアクセス可能な変更可能なアセットに適している。
- ユーザーがカスタムデータや設定を追加できる。
- 注意点:

2.データストレージ
PlayFab
-
マルチプレイヤーやライブサービスのゲーム。
- 概要:
- 処理:
- プレイヤーデータの保存、リーダーボード、課金処理などが可能。
- 利点:
- グローバルでのプレイヤーデータの管理が可能。
- クラウド上でのセキュリティとスケーラビリティが提供される。
- 注意点:
- ネットワーク接続が必要。
- サービス利用料がかかる場合がある。
Firebase
-
リアルタイムマルチプレイヤーやチャット機能。
- 概要:
- Googleが提供するモバイル・Webアプリ向けの開発プラットフォーム。
- 処理:
- リアルタイムデータベース、認証、クラウドメッセージングなどが提供される。
- 利点:
- リアルタイムでのデータの同期が可能。
- 多機能なサービスが提供される。
- 注意点:
- Googleアカウントが必要。
- プランによっては利用料が発生する。
PlayerPrefs (検索すると一番記事がたくさん出てくると思う)
設定や進行状況の簡単な保存。一番手っ取り早く保存ができ、ネット記事も多い。
- 概要:
- 処理:
- 利点:
- 簡単に設定や進行状況を保存できる。
- ゲームデータの一時的な保存に適している。
- 注意点:
- セキュリティが低く、データの改ざんが容易であること。(暗号化されない)
- データサイズに制限がある
- デフォルトではint,float,stringといった基本的な型しか保存できない(bool型やDictionary型の保存ができない)
- データの保存のされ方がわかりにくい
柔軟で構造化されたデータ保存が必要な場合。
- 概要:
- 柔軟で構造化されたデータをテキスト形式で保存するフォーマット。
- 処理:
- 利点:
- 読み書きが容易で、他のプログラムとのデータ共有が可能。
- 構造化されたデータ管理ができる。データがわかりやすい。(暗号化もできる)
- 注意点:
- 大容量のデータには適していない場合がある。
- パースやシリアライズにコストがかかることがある。
QuickSave
高機能なデータ保存が必要な場合。
- 概要:
- 処理:
- 利点:
- 複雑なセーブ/ロード機能を提供。
- セーブデータの管理とバックアップが容易。
- 注意点:
- アセットストアからの購入が必要(無料)。
- ライブラリの学習コストがかかる場合がある。
(外部サイト)無料アセット「QuickSave」を使ったセーブ機能の作り方