//------------------------------------------------------------------------ /*! * @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); }
//------------------------------------------------------------------------ /*! * @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); } }
//------------------------------------------------------------------------ /*! * @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); }
//------------------------------------------------------------------------ /*! * @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 }
//------------------------------------------------------------------------ /*! * @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); } }