예제 #1
0
    public void ShowLeaderboard()
    {
#if UNITY_IPHONE || UNITY_ANDROID
        // show leaderboard UI
        PlayGameServices.showLeaderboard(_leaderboardID, GPGLeaderboardTimeScope.AllTime);
#endif
    }
        public static void TryAuthentication(bool forceMode = false)
        {
            if (instanceExists && instance.debugMode)
            {
                Debug.LogFormat("PlayGameCenterManager:TryAuthentication({0}) - isAuthenticated={1}, isLastAuthenticationFailed={2}", forceMode, isAuthenticated, isLastAuthenticationFailed);
            }

            if (IsSingedIn())             // If already logined, skip here
            {
                return;
            }

            if (isLastAuthenticationFailed && !forceMode)             // If last login failed, don't do it again (unless in forceMode)
            {
                return;
            }

            _isForcingAuthentication = forceMode;

#if UNITY_IOS
            GameCenterBinding.authenticateLocalPlayer(forceMode);             // Authenticate the player
#elif UNITY_ANDROID && !CHS
            if (forceMode)
            {
                PlayGameServices.authenticate();                 // Authenticate with UI
            }
            else
            {
                PlayGameServices.attemptSilentAuthentication();                 // Authenticate Silently (with no UI)
            }
#endif
        }
예제 #3
0
    //=============================================================================

    public void Logout()
    {
                #if UNITY_IPHONE
        if ((IsLoggedIn() == true) && (m_ManagerState == eManagerState.Idle))
        {
            // Stop auto log-in from now on
            PlayerPrefs.SetInt("GCGPAutoLogin", 0);
            m_bIsLoggedIn  = false;
            m_ManagerState = eManagerState.Idle;

            if (LogoutSuccessEvent != null)
            {
                LogoutSuccessEvent();
            }
        }
                #endif

                #if UNITY_ANDROID
        if ((IsLoggedIn() == true) && (m_ManagerState == eManagerState.Idle))
        {
            // Stop auto log-in from now on
            PlayerPrefs.SetInt("GCGPAutoLogin", 0);
            m_bIsLoggedIn  = false;
            m_ManagerState = eManagerState.Idle;

            PlayGameServices.signOut();

            if (LogoutSuccessEvent != null)
            {
                LogoutSuccessEvent();
            }
        }
                #endif
    }
예제 #4
0
 public void SubmitLeaderboardScore(int score)
 {
     if (score > 0)
     {
         PlayGameServices.submitScore(m_leaderboardId, (long)score);
     }
 }
예제 #5
0
 public void DisplayUI()
 {
                 #if UNITY_ANDROID && API_SYNC_GPGS
     UnityEngine.Debug.Log("Display UI");
     PlayGameServices.showSnapshotList(3, "Kubiko", true, false);
                 #endif
 }
예제 #6
0
        public void ShowLeaderboard(ButtonEventArgs args)
        {
#if UNITY_IOS
#if GAMECENTER
            if (GameCenterBinding.isPlayerAuthenticated())
            {
                GameCenterBinding.showLeaderboardWithTimeScope(GameCenterLeaderboardTimeScope.AllTime);
            }
            else
            {
                StartLeaderboard();
            }
#else
            Core.Utility.Popup.PopupMessages.Me.NativeFuncionNonAvailableMessage();
#endif
#endif

#if UNITY_ANDROID
#if GPGSERVIES
            if (!PlayGameServices.isSignedIn())
            {
                StartLeaderboard(false);
            }
            else
            {
                PlayGameServices.showLeaderboards();
            }
#else
            Core.Utility.Popup.PopupMessages.Me.NativeFuncionNonAvailableMessage();
#endif
#endif
        }
예제 #7
0
        public void StartLeaderboard(bool autoStart = false)
        {
            if (!Network.IsInternetConnection() && !autoStart)
            {
                Core.Utility.Popup.PopupMessages.Me.InternetConnectionMessgae();
                return;
            }
#if UNITY_IOS && GAMECENTER
            if (!GameCenterBinding.isPlayerAuthenticated())
            {
                GameCenterBinding.authenticateLocalPlayer();
            }
#endif
#if UNITY_ANDROID
#if GPGSERVIES && !AMAZONSTORE
            GPGManager.authenticationFailedEvent += (string error) => {
                MyDebug.Log("Prime[31] Google Play service authenticate fail with error:\n" + error);
            };
            GPGManager.authenticationSucceededEvent += (string data) => {
                MyDebug.Log("Prime[31] Google Play service authenticate compelete with data:\n" + data);
            };
            if (!PlayGameServices.isSignedIn())
            {
#if MYDEBUG
                PlayGameServices.enableDebugLog(true);
#endif
                PlayGameServices.authenticate();
            }
#endif
#endif
        }
예제 #8
0
        private void CheckshouldLoadTopScores()
        {
            if (shouldLoadMyScores)
            {
                foreach (LeaderboardInfo li in leaderboardInfos)
                {
#if UNITY_IOS || UNITY_TVOS
                    GameCenterBinding.retrieveScoresForPlayerIds(new string[1] {
                        GameCenterBinding.playerIdentifier()
                    }, li.leaderboardId);
#elif UNITY_ANDROID && !CHS
                    PlayGameServices.loadCurrentPlayerLeaderboardScore(li.leaderboardId, GPGLeaderboardTimeScope.AllTime, false);
#endif
                }
            }

#if UNITY_ANDROID
            CheckOfflineHighScores();
#endif

            if (shouldLoadTopScores)
            {
                DownloadAllLeaderboardTopScores(TimeScope.AllTime);
            }
        }
예제 #9
0
        public static void Report(Leaderboard leaderboard, long score)
        {
            if (!instanceExists)
            {
                return;
            }

            int leaderboardIndex = (int)leaderboard;

            if (leaderboardIndex >= instance.leaderboardInfos.Length)
            {
                Debug.LogFormat("LeaderboardManager:Report - leaderboard index ({0}) out of bound.", leaderboardIndex);
                return;
            }

            if (instance.debugMode)
            {
                Debug.LogFormat("LeaderboardManager:Report({0},{1})", leaderboard, score);
            }

#if UNITY_IOS || UNITY_TVOS
            GameCenterBinding.reportScore(score, instance.leaderboardInfos[leaderboardIndex].leaderboardId);
#elif UNITY_ANDROID && !CHS
            if (PlayGameCenterManager.isAuthenticated)
            {
                PlayGameServices.submitScore(instance.leaderboardInfos[leaderboardIndex].leaderboardId, score);
            }
            else
            {
                SetCachedHighScore(leaderboard, score);
            }
#endif
        }
예제 #10
0
    public void LoadScoresForLeaderboard(bool aroundMyRankResults, int count = 0)
    {
        MaxVisibleScores = (count > 0) ? count : int.MaxValue;
#if UNITY_IPHONE || UNITY_ANDROID
        PlayGameServices.loadScoresForLeaderboard(_leaderboardID, GPGLeaderboardTimeScope.AllTime, false, aroundMyRankResults);
        Debug.LogWarning("call LoadScoresForLeaderboard");
#endif
    }
예제 #11
0
    void OnGUI()
    {
        GUI.skin.label.alignment = TextAnchor.MiddleCenter;
        beginColumn();


        // if there is no game in progress we show buttons to setup a room
        if (!_isGameInProgress)
        {
            if (GUILayout.Button("Authenticate"))
            {
                PlayGameServices.authenticate();
            }


            GUILayout.Label("Room Creation");

            if (GUILayout.Button("Show Invitation Inbox"))
            {
                GPGMultiplayer.showInvitationInbox();
            }


            if (GUILayout.Button("Create Room Programmatically"))
            {
                GPGMultiplayer.createRoomProgrammatically(1, 1, 0);
            }


            if (GUILayout.Button("Show Player Selector"))
            {
                GPGMultiplayer.showPlayerSelector(1, 1);
            }
        }
        else
        {
            GUILayout.Label("In Real-time Match");

            if (GUILayout.Button("Leave Room"))
            {
                GPGMultiplayer.leaveRoom();
            }


            if (GUILayout.Button("Send Unreliable Message to All"))
            {
                var bytes = System.Text.Encoding.UTF8.GetBytes("howdy. current time: " + System.DateTime.Now);
                GPGMultiplayer.sendUnreliableRealtimeMessageToAll(bytes);
            }


            GUILayout.Space(40);

            GUILayout.Label(_lastReceivedMessage);
        }

        endColumn(false);
    }
        public static bool IsSingedIn()
        {
#if UNITY_IOS
            return(GameCenterBinding.isPlayerAuthenticated());
#elif UNITY_ANDROID
            return(PlayGameServices.isSignedIn());
#endif
            return(false);
        }
예제 #13
0
    public void Authenticate()
    {
#if UNITY_IPHONE || UNITY_ANDROID
        Init();
        PlayGameServices.setAchievementToastSettings(GPGToastPlacement.Center, 50);
        PlayGameServices.authenticate();
        Debug.LogWarning("MySocial authenticate");
#endif
    }
예제 #14
0
    void Start()
    {
        PlayGameServices.enableDebugLog(true);

        // we always want to call init as soon as possible after launch. Be sure to pass your own clientId to init on iOS!
        // This call is not required on Android.
        //PlayGameServices.init( "YOUR_CLIENT_ID", true );
        PlayGameServices.init("160040154367.apps.googleusercontent.com", true);
    }
 public void Login()
 {
                 #if UNITY_ANDROID
     if (!PlayGameServices.isSignedIn())
     {
         ZedLogger.Log("trying to authenticate local player");
         PlayGameServices.authenticate();
     }
                 #endif
 }
예제 #16
0
    //=============================================================================

    public void DisplayAchievements()
    {
                #if UNITY_IPHONE
        GameCenterBinding.showAchievements();
                #endif

                #if UNITY_ANDROID
        PlayGameServices.showAchievements();
                #endif
    }
예제 #17
0
    //=============================================================================

    public void DisplayScoreboards()
    {
                #if UNITY_IPHONE
        GameCenterBinding.showLeaderboardWithTimeScope(GameCenterLeaderboardTimeScope.AllTime);
                #endif

                #if UNITY_ANDROID
        PlayGameServices.showLeaderboards();
                #endif
    }
 protected override void Setup(APIWrapperSettings settings)
 {
                 #if UNITY_ANDROID
     if (!PlayGameServices.isSignedIn() && !PlayerDataManager.Instance.GameCenterLoginRequested)
     {
         ZedLogger.Log("trying to authenticate local player (silently)");
         PlayGameServices.attemptSilentAuthentication();
     }
                 #endif
 }
        public static string GetPlayerName()
        {
#if UNITY_IOS
            return(GameCenterBinding.playerAlias());
#elif UNITY_ANDROID && !CHS
            return(PlayGameServices.getLocalPlayerInfo().name);
#else
            return(string.Empty);
#endif
        }
예제 #20
0
 public void ReportStarAchievementProgress(int numStars)
 {
     if (numStars > 0 && numStars % 10 == 0)
     {
         int index = (numStars / 10) - 1;
         if (index >= 0 && index <= m_starAchievementIds.Length - 1)
         {
             PlayGameServices.unlockAchievement(m_starAchievementIds[index]);
         }
     }
 }
예제 #21
0
 public void UnlockAchievement(string achievementName)
 {
     for (int i = 0; i < achievementNameID.Count; i++)
     {
         if (achievementNameID[i].achievementName == achievementName)
         {
             Debug.Log("Displaying achievements : " + achievementNameID[i].achievementID);
             PlayGameServices.unlockAchievement(achievementNameID[i].achievementID, true);
         }
     }
 }
예제 #22
0
 public void ToggleSignIn()
 {
     if (IsSignedIn)
     {
         PlayGameServices.signOut();
     }
     else
     {
         PlayGameServices.authenticate();
     }
 }
예제 #23
0
 public void ShowAchievements()
 {
     if (IsSignedIn)
     {
         PlayGameServices.showAchievements();
     }
     else
     {
         PlayGameServices.authenticate();
     }
 }
        private void OnAuthenticationSucceeded(string param)
        {
            if (debugMode)
            {
                Debug.LogFormat("PlayGameCenterManager:OnAuthenticationSucceeded({0})");
            }

            ProcessAuthenticationSucceeded();

            playerNameLoadedEvent?.Invoke(PlayGameServices.getLocalPlayerInfo().name);
        }
예제 #25
0
    public GPGPlayerInfo GetLocalPlayerInfo()
    {
        var playerInfo = PlayGameServices.getLocalPlayerInfo();

        Prime31.Utils.logObject(playerInfo);

        // if we are on Android and have an avatar image available, lets download the profile pic
        //if (Application.platform == RuntimePlatform.Android && playerInfo.avatarUrl != null)
        //    PlayGameServices.loadProfileImageForUri(playerInfo.avatarUrl);
        return(playerInfo);
    }
예제 #26
0
 public void ShowLeaderboard()
 {
     if (IsSignedIn)
     {
         PlayGameServices.showLeaderboards();
     }
     else
     {
         PlayGameServices.authenticate();
     }
 }
    public void StartGoogleCloudLogin()
    {
        Debug.Log("StartGoogleCloudLogin() called");

        if (!PlayGameServices.isSignedIn() && !googleCloudTryingToLogin)
        {
            Debug.Log("StartGoogleCloudLogin() authenticate called");
            PlayGameServices.authenticate();
            googleCloudTryingToLogin = true;
        }
    }
예제 #28
0
        public static void ShowPlayGameCenterLeaderboards()
        {
            if (!PlayGameCenterManager.isAuthenticated)
            {
                PlayGameCenterManager.TryAuthentication(true);
            }
#if UNITY_IOS || UNITY_TVOS
            GameCenterBinding.showLeaderboardWithTimeScope(GameCenterLeaderboardTimeScope.AllTime);
#elif UNITY_ANDROID && !CHS
            PlayGameServices.showLeaderboards();
#endif
        }
예제 #29
0
        public static void ShowPlayGameCenterAchievements()
        {
            if (!PlayGameCenterManager.isAuthenticated)
            {
                PlayGameCenterManager.TryAuthentication(true);
            }
#if UNITY_IOS || UNITY_TVOS
            GameCenterBinding.showAchievements();
#elif UNITY_ANDROID && !CHS
            PlayGameServices.showAchievements();
#endif
        }
    public void DeleteUserFromCloud()
    {
        Debug.Log("[UserManagerCloud] DeleteUserFromCloud...");
#if UNITY_IPHONE || UNITY_EDITOR
        StartCoroutine(DeleteFromCloud());
#elif UNITY_ADNROID
        if (PlayGameServices.isSignedIn())
        {
            PlayGameServices.deleteCloudDataForKey(0, false);
        }
#endif
    }