/// <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()));
        }
Exemple #3
0
        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;
        }
Exemple #4
0
    /// <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("スコア送信完了");
    }