Unity 5.5f3 - Google Play Services issue - won't compile.

Same project was fine with 5.4, now 5.5 is giving me:
“Assets/GooglePlayGames/ISocialPlatform/PlayGamesPlatform.cs(41,18): error CS0535: GooglePlayGames.PlayGamesPlatform' does not implement interface member UnityEngine.SocialPlatforms.ISocialPlatform.Authenticate(UnityEngine.SocialPlatforms.ILocalUser, System.Action<bool,string>)'”

And of course that is not my file, but Google’s plugin for unity.
Dunno what you changed in the social class, but it broke things.
I would expect this from Beta, but not from a final release. I do wish that the updates wouldn’t brake something for once. I did try to re-import the file of course, and i did check and i have the latest package for the plugin.

It of course broke lightmaps, but those can be easily rebaked.

Not sure if this was added in Unity 5.5, but the ISocialPlatform interface now looks like this:

public interface ISocialPlatform
{
    // Methods
    void Authenticate(ILocalUser user, Action<bool> callback);
    void Authenticate(ILocalUser user, Action<bool, string> callback);
    IAchievement CreateAchievement();
    ILeaderboard CreateLeaderboard();
    bool GetLoading(ILeaderboard board);
    void LoadAchievementDescriptions(Action<IAchievementDescription[]> callback);
    void LoadAchievements(Action<IAchievement[]> callback);
    void LoadFriends(ILocalUser user, Action<bool> callback);
    void LoadScores(string leaderboardID, Action<IScore[]> callback);
    void LoadScores(ILeaderboard board, Action<bool> callback);
    void LoadUsers(string[] userIDs, Action<IUserProfile[]> callback);
    void ReportProgress(string achievementID, double progress, Action<bool> callback);
    void ReportScore(long score, string board, Action<bool> callback);
    void ShowAchievementsUI();
    void ShowLeaderboardUI();

    // Properties
    ILocalUser localUser { get; }
}

This means that any type that implements this interface will have to implement all of these methods / properties.
If a plugin that is based on this interface didn’t add the appropriate method implementations, it will not work with Unity 5.5.

You can try to add this to PlayGamesPlatform.cs:

#if UNITY_5_5

public void Authenticate(ILocalUser unused, Action<bool, string> callback)
{
    Authenticate(b => callback(b, ""), false);
}

#endif

Thanks, will try as soon as possible.

@liortal Hm. well, PlayGamePlatform doesn’t show compile errors, but now the PlayGamesLocalUser shows two.
The old one that it doesn’t implement the interface, and that Authenticate takes 1 argument.

Yes it’s the same issue, since they also updated the interface that PlayGamesLocalUser implements.

So i put the same call in that file as well? no need to change something for that one VS the local file?

Hey, this is a regression and the team is working on a solution.

@SaraCecilia Ah. the thing was that i’m working on a patch for my project, i guess this can be expected in the next patch? or is it a long wait away?

Really like the art style of your avatar btw.

The fix is being done on the Google Play side - I don’t have an ETA just yet.

And thanks re the avatar! It’s an early concept of a character in my game :smile:

@SaraCecilia Ok! Now i’m curious about the game and its theme.

Ok, so i used these two scripts and now the project shows no errors and also it seems that the GPGS works.
Game was able to retrieve my time in my game’s courses and see the achievements that were made with a previous build.
https://github.com/playgameservices/play-games-plugin-for-unity/pull/1500/commits/670024bf6cb6c211a6214f57f76609aca13814ed