Не работает Google Cloud Saving Unity

Пытаюсь сделать авторизацию и облачное сохранение через Google,с авторизацией всё уладил,а вот сохранения не работают, брал чужой код, брал код из github самого api,ничего.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using GooglePlayGames;
using GooglePlayGames.BasicApi;
using GooglePlayGames.BasicApi.SavedGame;
using TMPro;
using System;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;

public class PlayGamesServices : MonoBehaviour
{
    public TextMeshProUGUI debugText;
    public TextMeshProUGUI scoreText;
    public TextMeshProUGUI authText;

    public string fileName;
    public static PlayGamesPlatform platform;
    private static ISavedGameClient savedGameClient;
    private static ISavedGameMetadata currentMetadata;
    public const string DEFAULT_SAVE_NAME = "Save";
    private Save sv = new Save();
    private string path;
    


    private string saveString = "";

    public void Start()
    {
#if UNITY_ANDROID && !UNITY_EDITOR
        path = Path.Combine(Application.persistentDataPath,"Save.json");
#else
        path = Path.Combine(Application.dataPath, "Save.json");
#endif
        Debug.Log(path);
        if (File.Exists(path))
        {
            sv = JsonUtility.FromJson<Save>(File.ReadAllText(path));
            Debug.Log("Последний уровень: " + sv.lastLevel + "\n Очки: " + sv.score);
        }
        PlayGamesClientConfiguration config = new PlayGamesClientConfiguration.Builder().EnableSavedGames().Build();
        PlayGamesPlatform.InitializeInstance(config);
        PlayGamesPlatform.DebugLogEnabled = true;
        platform = PlayGamesPlatform.Activate();
        scoreText.text = "0";
    }

    public static bool IsAuthenticated
    {
        get
        {
            if (PlayGamesPlatform.Instance != null) return PlayGamesPlatform.Instance.IsAuthenticated();
            return false;
        }
    }
    public void PlatformLogin()
    {

        Social.Active.localUser.Authenticate(success =>
        {
            if (success)
            {
                debugText.text = "Hello " + Social.Active.localUser.userName;
            }
            else
            {
                debugText.text = "failed to login";
            }
        });
    }

    #region Arrays
    public byte[] GetByteArray()
    {
        string json = JsonUtility.ToJson(sv);
        byte[] barray = Encoding.UTF8.GetBytes(json);
        for (int i = 0; i < barray.Length; i++)
        {
            Debug.Log(barray[i]);
        }
        return barray;
    }

    public void ReadByteArray(byte[] data)
    {
        string json = Encoding.UTF8.GetString(data, 0, data.Length);
        sv = JsonUtility.FromJson<Save>(json);
        //SaveData();
        //LoadData();
        sv.score += 0;
        scoreText.text = sv.score.ToString();
    }
    #endregion


    #region GoogleSaving
    private void OpenSaveData(string fileName, Action<SavedGameRequestStatus, ISavedGameMetadata> onDataOpen)
    {
        if (!IsAuthenticated)
        {
            onDataOpen(SavedGameRequestStatus.AuthenticationError, null);
            return;
        }
        savedGameClient.OpenWithAutomaticConflictResolution(fileName, DataSource.ReadCacheOrNetwork, ConflictResolutionStrategy.UseLongestPlaytime, onDataOpen);
    }

    public void ReadSaveData(string fileName, Action<SavedGameRequestStatus, byte[]> onDataRead)
    {
        if (!IsAuthenticated)
        {
            debugText.text += "\nReadSaveData - not auth";
            onDataRead(SavedGameRequestStatus.AuthenticationError, null);
            return;
        }
        OpenSaveData(fileName, (status, metadata) =>
        {
            if (status == SavedGameRequestStatus.Success)
            {               
                savedGameClient.ReadBinaryData(metadata, onDataRead);
                currentMetadata = metadata;
            }
            debugText.text += "\nOpenSaveData " + status;
        });
    }

    public void WriteSaveData(byte[] data)
    {
        if (data == null || data.Length == 0)
        {
            return;
        }
        Action onDataWrite = () =>
        {
            SavedGameMetadataUpdate.Builder builder = new SavedGameMetadataUpdate.Builder().WithUpdatedDescription("Saved game at " + DateTime.Now);
            SavedGameMetadataUpdate updatedMetadata = builder.Build();
            savedGameClient.CommitUpdate(currentMetadata, updatedMetadata, data, (status, metadata) => currentMetadata = metadata);
        };

        if (currentMetadata == null)
        {
            OpenSaveData(DEFAULT_SAVE_NAME, (status, metadata) =>
            {
                Debug.Log("Cloud data write status: " + status.ToString());
                if (status == SavedGameRequestStatus.Success)
                {
                    currentMetadata = metadata;
                    onDataWrite();
                }
            });
        }
        onDataWrite();
    }
    #endregion

    #region Buttons
    public void LoadData()
    {
        debugText.text += "\nTryToLoadData";
        ReadSaveData(DEFAULT_SAVE_NAME, (status, data) =>
        {
            debugText.text += "\nLoadData " + status;
            if (status == SavedGameRequestStatus.Success && data.Length > 0)
            {
                ReadByteArray(data);
            }
        });
    }
    #endregion
    public void SaveData()
    {
        File.WriteAllText(path, JsonUtility.ToJson(sv));
        WriteSaveData(GetByteArray());
    }

    public void SetValues()
    {
        sv.score += 200;
        scoreText.text = sv.score.ToString();
    }
    private void Update()
    {
        authText.text = IsAuthenticated.ToString();
    }
    public class Save
    {
        public int lastLevel;
        public int score;
    }
}

Коротко о коде: Управление идет через UI кнопки. Initialize авторизует пользователя, затем при нажатии кнопки Load вызывается метод LoadData(),и ничего не происходит. Если пробовать нажать на Load в редакторе, без авторизации, то выводит текст что не удается загрузить, если в приложении на телефоне - ни ошибочное, ни утвердительное сообщение не выводится.


Ответы (0 шт):