前提・実現したいこと
表題の通り、Unityで作った放置系ゲームの総プレイ時間をDBに保存しようと考えています。
現在はPlayerPrefsにUpdateの度に保存し、再起動時に呼び出しています。
DBはFirebase Realtime Databaseを利用する予定です。
発生している問題
DBに保存するとなると、なるべく通信回数を減らしたいと考えています。
現在のようにUpdateの度にDB更新を行うとDBの使用料金が膨大になってしまうのではないかと考えています。
プレイ時間をDBに保存するといったケースでは、一般的にどういった方法で書き込みを行うのでしょうか。
(Updateの度に書き込むような実装が一般的でしょうか、それとも他に方法がありますでしょうか。)
該当のソースコード
以下はテストコードですが、updateでDBに更新をかけています。
PlayTime.playTimeは他クラスでupdate時に更新されています。
C#
1public class DBManager : MonoBehaviour { 2 private DatabaseReference reference; 3 4 void Start () { 5 FirebaseApp.DefaultInstance.SetEditorDatabaseUrl("https://dbname.firebaseio.com/"); 6 reference = FirebaseDatabase.DefaultInstance.RootReference; 7 } 8 9 void Update () { 10 reference.Child ("PlayTime").SetValueAsync (PlayTime.playTime); 11 } 12} 13
試したこと
OnApplicationQuitのタイミングとOnApplicationPauseのタイミングでの更新を考えましたが、
OnApplicationQuitは呼ばれないケースがあるとのことで、プレイ時間を保存できない場合があり利用できません。
参考:OnApplicationQuitイベントについて
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/26 05:02