예제 #1
0
    //------------------------------------------------------------------------

    /*!
     *      @brief		セーブデータ読み込み完了コールバック.
     *      @param[in]	SavedGameRequestStatus	(status)		呼び出された時のステータス.
     *      @param[in]	ISavedGameMetadata		(game)			セーブデータのメタデータ.
     */
    //------------------------------------------------------------------------
    public static void SaveGameLoaded(SavedGameRequestStatus status, byte[] data)
    {
        if (status == SavedGameRequestStatus.Success)
        {
            // 正常取得時.
            // ロードデータをコピー.
            m_LoadDataTemp = new byte[data.Length];
            data.CopyTo(m_LoadDataTemp, 0);
            // ステータスをロード成功に.
            m_SavedDataStatus = ESAVED_DATA_STATUS.DATA_LOAD_SUCCESS;
        }
        else if (status == SavedGameRequestStatus.TimeoutError)
        {
            // 接続タイムアウト.
            // ロードデータをnullに.
            m_LoadDataTemp = null;
            // ステータスをタイムアウト.
            m_SavedDataStatus = ESAVED_DATA_STATUS.TIME_OUT_ERROR;
        }
        else
        {
            // データ取得失敗時.
            // ロードデータをnullに.
            m_LoadDataTemp = null;
            // ステータスをロード失敗に.
            m_SavedDataStatus = ESAVED_DATA_STATUS.DATA_LOAD_FAILED;
        }

        //--------------------------------
        // SavedGames通信中のLoading表示を閉じる
        //--------------------------------
        LoadingManager.Instance.RequestLoadingFinish(LOADING_TYPE.PLAYGAME_SERVICES);
    }
예제 #2
0
    //------------------------------------------------------------------------

    /*!
     *      @brief		セーブデータスロット取得コールバック(ロード用).
     *      @param[in]	SavedGameRequestStatus	(status)		呼び出された時のステータス.
     *      @param[in]	ISavedGameMetadata		(game)			セーブデータのメタデータ.
     */
    //------------------------------------------------------------------------
    public static void SavedGameLoadOpened(SavedGameRequestStatus status, ISavedGameMetadata game)
    {
        if (status == SavedGameRequestStatus.Success)
        {
            // 正常取得時.
            // ロード処理開始.
            ((PlayGamesPlatform)Social.Active).SavedGame.ReadBinaryData(game, SaveGameLoaded);
        }
        else if (status == SavedGameRequestStatus.TimeoutError)
        {
            // 接続タイムアウト.
            // ロードデータをnullに.
            m_LoadDataTemp = null;
            // ステータスをタイムアウト.
            m_SavedDataStatus = ESAVED_DATA_STATUS.TIME_OUT_ERROR;

            //--------------------------------
            // SavedGames通信中のLoading表示を閉じる
            //--------------------------------
            LoadingManager.Instance.RequestLoadingFinish(LOADING_TYPE.PLAYGAME_SERVICES);
        }
        else
        {
            // データ取得失敗時.
            // ロードデータをnullに.
            m_LoadDataTemp = null;
            // ステータスをロード失敗に.
            m_SavedDataStatus = ESAVED_DATA_STATUS.DATA_LOAD_FAILED;

            //--------------------------------
            // SavedGames通信中のLoading表示を閉じる
            //--------------------------------
            LoadingManager.Instance.RequestLoadingFinish(LOADING_TYPE.PLAYGAME_SERVICES);
        }
    }
예제 #3
0
    //------------------------------------------------------------------------

    /*!
     *      @brief		セーブデータ保存完了コールバック.
     *      @param[in]	SavedGameRequestStatus	(status)		呼び出された時のステータス.
     *      @param[in]	ISavedGameMetadata		(game)			セーブデータのメタデータ.
     */
    //------------------------------------------------------------------------
    public static void SavedGameWritten(SavedGameRequestStatus status, ISavedGameMetadata game)
    {
        if (status == SavedGameRequestStatus.Success)
        {
            // 保存成功.
            // 保存データは消しておく.
            m_SaveDataTemp = null;
            // ステータスをセーブ成功に.
            m_SavedDataStatus = ESAVED_DATA_STATUS.DATA_SAVE_SUCCESS;
        }
        else if (status == SavedGameRequestStatus.TimeoutError)
        {
            // 接続タイムアウト.
            // 保存データは消しておく.
            m_SaveDataTemp = null;
            // ステータスをタイムアウト.
            m_SavedDataStatus = ESAVED_DATA_STATUS.TIME_OUT_ERROR;
        }
        else
        {
            // データ取得失敗時.
            // 保存データは消しておく.
            m_SaveDataTemp = null;
            // ステータスをセーブ失敗に.
            m_SavedDataStatus = ESAVED_DATA_STATUS.DATA_SAVE_FAILED;
        }

        //--------------------------------
        // SavedGames通信中のLoading表示を閉じる
        //--------------------------------
        LoadingManager.Instance.RequestLoadingFinish(LOADING_TYPE.PLAYGAME_SERVICES);
    }
예제 #4
0
    //------------------------------------------------------------------------

    /*!
     *          @brief		データロード
     *          @param[in]	string				(strLoadName)		ロードするファイル名.
     *          @return		セーブ処理を開始したか判定.
     */
    //------------------------------------------------------------------------
    public static bool SavedGameDataLoadRequest(string strLoadName)
    {
#if GAMECENTER_ANDROID || GAMECENTER_IPHONE
        // 受け付けない状態はfalseで返す.
        // すでにロードorセーブ中 もしくはデータが不正な時.
        if (m_SavedDataStatus == ESAVED_DATA_STATUS.DATA_DURING_SAVE || m_SavedDataStatus == ESAVED_DATA_STATUS.DATA_LOADING)
        {
            return(false);
        }
        if (strLoadName == null)
        {
            return(false);
        }
        // ロードデータをnullに.
        m_LoadDataTemp = null;
        // ステータスをセーブ処理中に.
        m_SavedDataStatus = ESAVED_DATA_STATUS.DATA_LOADING;
        // SavedDataデータ取得開始.
        ((PlayGamesPlatform)Social.Active).SavedGame.OpenWithAutomaticConflictResolution(
            strLoadName,                                                        // 参照するセーブファイル名.
            DataSource.ReadNetworkOnly,                                         // ネットワーク上のデータのみ取得する.
            ConflictResolutionStrategy.UseUnmerged,                             // コンフリクトじのマージをしない.
            SavedGameLoadOpened                                                 // 処理終了時に呼び出すコールバック.
            );

        //--------------------------------
        // SavedGames通信中はLoading表示
        //--------------------------------
        LoadingManager.Instance.RequestLoadingStart(LOADING_TYPE.PLAYGAME_SERVICES);

        return(true);
#else
        return(false);
#endif
    }
예제 #5
0
    //------------------------------------------------------------------------

    /*!
     *      @brief		セーブデータスロット取得コールバック(セーブ用).
     *      @param[in]	SavedGameRequestStatus	(status)		呼び出された時のステータス.
     *      @param[in]	ISavedGameMetadata		(game)			セーブデータのメタデータ.
     */
    //------------------------------------------------------------------------
    public static void SavedGameSaveOpened(SavedGameRequestStatus status, ISavedGameMetadata game)
    {
        if (status == SavedGameRequestStatus.Success)
        {
            // 正常取得時.
            // 特にメタデータを更新はしないでデータを保存.
            SavedGameMetadataUpdate.Builder builder         = new SavedGameMetadataUpdate.Builder();
            SavedGameMetadataUpdate         updatedMetadata = builder.Build();
            ((PlayGamesPlatform)Social.Active).SavedGame.CommitUpdate(
                game,                                                                                   // メタデータ.
                updatedMetadata,                                                                        // メタデータ更新内容.
                m_SaveDataTemp,                                                                         // 保存するデータ.
                SavedGameWritten                                                                        // 処理終了時に呼び出すコールバック.
                );
        }
        else if (status == SavedGameRequestStatus.TimeoutError)
        {
            // 接続タイムアウト.
            // 保存データは消しておく.
            m_SaveDataTemp = null;
            // ステータスをタイムアウト.
            m_SavedDataStatus = ESAVED_DATA_STATUS.TIME_OUT_ERROR;

            //--------------------------------
            // SavedGames通信中のLoading表示を閉じる
            //--------------------------------
            LoadingManager.Instance.RequestLoadingFinish(LOADING_TYPE.PLAYGAME_SERVICES);
        }
        else
        {
            // データ取得失敗時.
            DebugLogger.StatAdd("Failed SaveOpened : " + status);
            // 保存データは消しておく.
            m_SaveDataTemp = null;
            // ステータスをセーブ失敗に.
            m_SavedDataStatus = ESAVED_DATA_STATUS.DATA_SAVE_FAILED;

            //--------------------------------
            // SavedGames通信中のLoading表示を閉じる
            //--------------------------------
            LoadingManager.Instance.RequestLoadingFinish(LOADING_TYPE.PLAYGAME_SERVICES);
        }
    }