/// <summary> /// ハイスコア送信 /// </summary> /// <param name="name"></param> /// <param name="data"></param> /// <returns></returns> public async UniTask SendScoreAsync(string name, Dictionary <string, int> data) { // ハイスコア送信 if (_ncmbRecord == null) { _ncmbRecord = new NCMBObject(_className) { ObjectId = ObjectID }; } _ncmbRecord[ColumnName] = name; foreach (var row in data) { _ncmbRecord[row.Key] = row.Value; } NCMBException errorResult = null; await _ncmbRecord.YieldableSaveAsync(error => errorResult = error); if (errorResult != null) { _ncmbRecord.ObjectId = null; await _ncmbRecord.YieldableSaveAsync(error => errorResult = error); } ObjectID = _ncmbRecord.ObjectId; }
private IEnumerator SendScoreEnumerator() { sendScoreButton.interactable = false; highScoreLabel.text = "送信中..."; //ハイスコア送信 if (_ncmbRecord == null) { _ncmbRecord = new NCMBObject(_board.ClassName); _ncmbRecord.ObjectId = ObjectID; } _ncmbRecord[COLUMN_NAME] = InputtedNameForSave; _ncmbRecord[COLUMN_SCORE] = _lastScore.Value; NCMBException errorResult = null; yield return(_ncmbRecord.YieldableSaveAsync(error => errorResult = error)); if (errorResult != null) { //NCMBのコンソールから直接削除した場合に、該当のobjectIdが無いので発生する(らしい) _ncmbRecord.ObjectId = null; yield return(_ncmbRecord.YieldableSaveAsync(error => errorResult = error)); //新規として送信 } //ObjectIDを保存して次に備える ObjectID = _ncmbRecord.ObjectId; highScoreLabel.text = _lastScore.TextForDisplay; yield return(StartCoroutine(LoadRankingBoard())); }
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; }
/// <summary> /// スコア送信コルーチン /// </summary> /// <param name="rankingBoard"></param> /// <param name="ncmbObject"></param> /// <param name="onCompleted"></param> /// <returns></returns> private IEnumerator DoSendScore(RankingInfo rankingBoard, NCMBObject ncmbObject, UnityAction <NCMBObject> onCompleted) { Debug.Log("スコア送信中..."); NCMBException errorResult = null; yield return(ncmbObject.YieldableSaveAsync(error => errorResult = error)); if (errorResult != null) { // NCMBのコンソールから直接削除した場合に、該当のobjectIdが無いので発生する(らしい) // 新規として送信 ncmbObject.ObjectId = null; yield return(ncmbObject.YieldableSaveAsync(error => errorResult = error)); } // ObjectIDを保存して次に備える NcmbObjectId = ncmbObject.ObjectId; onCompleted?.Invoke(ncmbObject); Debug.Log("スコア送信完了"); }