using System; using UnityEngine; public class SceneCloudSaveResolver : MonoBehaviour { private void Start() { StorageController.CloudStorage.ConflictResolutionComplete += this.OnConflictResolutionComplete; this.OnConflictResolutionComplete(StorageController.CloudStorage.LastResolutionResult); } protected virtual void OnDestroy() { StorageController.CloudStorage.ConflictResolutionComplete -= this.OnConflictResolutionComplete; } private void OnConflictResolutionComplete(ConflictResolver.ConflictSolution result) { UnityEngine.Debug.Log("[SceneCloudSaveResolver] OnConflictResolutionComplete: " + result); switch (result) { default: StorageController.CloudStorage.OnConflictResolved(); break; case ConflictResolver.ConflictSolution.AskPlayer: this.OnConflictAskPlayer(); break; case ConflictResolver.ConflictSolution.PickLocal: this.OnConflictResultPickLocal(); break; case ConflictResolver.ConflictSolution.PickCloud: this.OnConflictResultPickCloud(); break; case ConflictResolver.ConflictSolution.InvalidGameVersion: this.OnConflictResultInvalidGameVersion(); break; } } protected virtual void OnConflictResultPickLocal() { StorageController.CloudStorage.OnConflictResolved(); StorageController.SaveAll(); } protected virtual void OnConflictResultPickCloud() { StorageController.CloudStorage.OnConflictResolved(); StorageController.CloudStorage.LoadLastCloudSaveGame(); StorageController.SaveAll(); } protected virtual void OnConflictAskPlayer() { } protected virtual void OnConflictResultInvalidGameVersion() { } }