GoogleManager.cs 소스입니다
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using GooglePlayGames;
using GooglePlayGames.BasicApi;
using GooglePlayGames.BasicApi.SavedGame;
public class GoogleManager : MonoBehaviour
{
public Text LogText;
void Start()
{
var config = new PlayGamesClientConfiguration.Builder().EnableSavedGames().Build();
PlayGamesPlatform.InitializeInstance(config);
PlayGamesPlatform.DebugLogEnabled = true;
PlayGamesPlatform.Activate();
LogIn();
}
public void LogIn()
{
Social.localUser.Authenticate((bool success) =>
{
if (success) LogText.text = Social.localUser.id + " \n " + Social.localUser.userName;
else LogText.text = "구글 로그인 실패";
});
}
public void LogOut()
{
((PlayGamesPlatform)Social.Active).SignOut();
LogText.text = "구글 로그아웃";
}
#region 클라우드 저장
ISavedGameClient SavedGame()
{
return PlayGamesPlatform.Instance.SavedGame;
}
public void LoadCloud()
{
SavedGame().OpenWithAutomaticConflictResolution("mysave",
DataSource.ReadCacheOrNetwork, ConflictResolutionStrategy.UseLastKnownGood, LoadGame);
}
void LoadGame(SavedGameRequestStatus status, ISavedGameMetadata game)
{
if (status == SavedGameRequestStatus.Success)
SavedGame().ReadBinaryData(game, LoadData);
}
void LoadData(SavedGameRequestStatus status, byte[] LoadedData)
{
if (status == SavedGameRequestStatus.Success)
{
string data = System.Text.Encoding.UTF8.GetString(LoadedData);
LogText.text = data;
}
else LogText.text = "로드 실패";
}
public void SaveCloud()
{
SavedGame().OpenWithAutomaticConflictResolution("mysave",
DataSource.ReadCacheOrNetwork, ConflictResolutionStrategy.UseLastKnownGood, SaveGame);
}
public void SaveGame(SavedGameRequestStatus status, ISavedGameMetadata game)
{
if (status == SavedGameRequestStatus.Success)
{
var update = new SavedGameMetadataUpdate.Builder().Build();
byte[] bytes = System.Text.Encoding.UTF8.GetBytes("흐하하");
SavedGame().CommitUpdate(game, update, bytes, SaveData);
}
}
void SaveData(SavedGameRequestStatus status, ISavedGameMetadata game)
{
if (status == SavedGameRequestStatus.Success)
{
LogText.text = "저장 성공";
}
else LogText.text = "저장 실패";
}
public void DeleteCloud()
{
SavedGame().OpenWithAutomaticConflictResolution("mysave",
DataSource.ReadCacheOrNetwork, ConflictResolutionStrategy.UseLongestPlaytime, DeleteGame);
}
void DeleteGame(SavedGameRequestStatus status, ISavedGameMetadata game)
{
if (status == SavedGameRequestStatus.Success)
{
SavedGame().Delete(game);
LogText.text = "삭제 성공";
}
else LogText.text = "삭제 실패";
}
#endregion
}