IEnumerator Save(GameSaveData data) { PlaySaveData = data; if (m_recordObject == null) { m_recordObject = new NCMBObject(NCMB_CLASSNAME); m_recordObject.ObjectId = ObjectID; } m_recordObject = ConvertPlayerData2NCMB(data, m_recordObject); NCMBException errorResult = null; yield return(m_recordObject.YieldableSaveAsync(error => errorResult = error)); if (errorResult != null) { //NCMBのコンソールから直接削除した場合に、該当のobjectIdが無いので発生する(らしい) m_recordObject.ObjectId = null; yield return(m_recordObject.YieldableSaveAsync(error => errorResult = error)); //新規として送信 } //ObjectIDを保存して次に備える ObjectID = m_recordObject.ObjectId; }
IEnumerator LoadColutine() { yield return(m_ncmb.Load()); data = (GameSaveData)m_ncmb.PlaySaveData; foreach (var d in data.AchivementDatas) { Debug.Log($"key={d.Key}, value={d.Value}"); } }
NCMBObject ConvertPlayerData2NCMB(GameSaveData data, NCMBObject ncmbObject) { ncmbObject[NCMB_DATA_PLAYERNAME] = data.PlayerName; ncmbObject[NCMB_DATA_MAXSCORE] = data.MaxScore; ncmbObject[NCMB_DATA_TOTALSCORE] = data.TotalScore; ncmbObject[NCMB_DATA_PLAYCOUNT] = data.PlayCount; ncmbObject[NCMB_DATA_MAXSUKIMAN] = data.MaxSukimaCount; ncmbObject[NCMB_DATA_TOTALSUKIMAN] = data.TotalSukimaCount; ncmbObject[NCMB_DATA_ACHIVEMENT] = MiniJSON.Json.Serialize(data.AchivementDatas); return(ncmbObject); }
IPlaySaveData ConvertNCMB2PlayerData(NCMBObject ncmbObject) { var result = new GameSaveData(); result.PlayerName = ncmbObject[NCMB_DATA_PLAYERNAME].ToString(); result.MaxScore = int.Parse(ncmbObject[NCMB_DATA_MAXSCORE].ToString()); result.TotalScore = int.Parse(ncmbObject[NCMB_DATA_TOTALSCORE].ToString()); result.PlayCount = int.Parse(ncmbObject[NCMB_DATA_PLAYCOUNT].ToString()); result.MaxSukimaCount = int.Parse(ncmbObject[NCMB_DATA_MAXSUKIMAN].ToString()); result.TotalSukimaCount = int.Parse(ncmbObject[NCMB_DATA_TOTALSUKIMAN].ToString()); var json = MiniJSON.Json.Deserialize(ncmbObject[NCMB_DATA_ACHIVEMENT].ToString()) as Dictionary <string, object>; result.AchivementDatas = json.ToDictionary(j => j.Key, j => (bool)j.Value); return(result); }
void InitAchivementData() { PlaySaveData = new GameSaveData(); PlaySaveData.AchivementDatas = AojiluService.AchivementDataSupplier.AchivementList; }