public void loadFromCloud(int keyNum, Action <string> onLoad) { CBOnCloudLoad = onLoad; #if UNITY_IPHONE try { switch (keyNum) { case 0: GCHandle handle = GCHandle.Alloc(key0CloudData, GCHandleType.Pinned); NerdGPG.GPG_LoadFromCloud(keyNum, handle.AddrOfPinnedObject(), key0CloudData.Length); handle.Free(); break; case 1: GCHandle handle1 = GCHandle.Alloc(key1CloudData, GCHandleType.Pinned); NerdGPG.GPG_LoadFromCloud(keyNum, handle1.AddrOfPinnedObject(), key1CloudData.Length); handle1.Free(); break; case 2: GCHandle handle2 = GCHandle.Alloc(key2CloudData, GCHandleType.Pinned); NerdGPG.GPG_LoadFromCloud(keyNum, handle2.AddrOfPinnedObject(), key2CloudData.Length); handle2.Free(); break; case 3: GCHandle handle3 = GCHandle.Alloc(key3CloudData, GCHandleType.Pinned); NerdGPG.GPG_LoadFromCloud(keyNum, handle3.AddrOfPinnedObject(), key3CloudData.Length); handle3.Free(); break; } } catch (Exception e) { Debug.LogException(e); } Debug.LogError("Invlaid keynum " + keyNum + " given or gc was unable to pin"); #elif UNITY_ANDROID mNerdGPG.Call("loadFromCloud", keyNum); #endif }
void OnGUI() { GUILayout.Label("Unity GPG Plugin Demo"); GUILayout.Space(20); GUILayout.BeginVertical(); GUILayout.BeginHorizontal(); if (GUILayout.Button("Init GPG", GUILayout.Height(60))) { Debug.Log("Init called"); NerdGPG.GPG_SetGameObjectName(name); NerdGPG.GPG_Init(clientId); } if (GUILayout.Button("Silent SignIn", GUILayout.Height(60))) { Debug.Log("Silent Signin called"); needFullSignin = !NerdGPG.GPG_TrySilentSignIn(); } if (needFullSignin) { if (GUILayout.Button("SignIn", GUILayout.Height(60))) { Debug.Log("Signin called"); NerdGPG.GPG_SignIn(); } } if (m_loginState == GPLoginState.loggedin) { if (GUILayout.Button("SignOut", GUILayout.Height(60))) { NerdGPG.GPG_SignOut(); } } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); if (m_loginState == GPLoginState.loggedin) { // we are logged in. we can do leaderboard and achievement and cloud stuff if (GUILayout.Button("GPG_ShowAllLeaderBoards", GUILayout.Height(60))) { NerdGPG.GPG_ShowAllLeaderBoards(); } if (GUILayout.Button("GPG_ShowLeaderBoards", GUILayout.Height(60))) { NerdGPG.GPG_ShowLeaderBoards(testLeaderBoard); } if (GUILayout.Button("GPG_ShowAchievements", GUILayout.Height(60))) { NerdGPG.GPG_ShowAchievements(); } if (GUILayout.Button("GPG_SubmitScore", GUILayout.Height(60))) { NerdGPG.GPG_SubmitScore(testLeaderBoard, 80); } if (GUILayout.Button("GPG_UnlocAchievement", GUILayout.Height(60))) { NerdGPG.GPG_UnlocAchievement(testAchievement); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); dataToSave = GUILayout.TextField(dataToSave, 100); if (GUILayout.Button("GPG_SaveToCloud", GUILayout.Height(60))) { byte[] bytes = new byte[dataToSave.Length * sizeof(char)]; System.Buffer.BlockCopy(dataToSave.ToCharArray(), 0, bytes, 0, bytes.Length); NerdGPG.GPG_SaveToCloud(0, bytes, bytes.Length); } if (GUILayout.Button("GPG_LoadFromCloud", GUILayout.Height(60))) { // NerdGPG.GPG_LoadFromCloud(0,bytes,bytes.Length); GCHandle handle = GCHandle.Alloc(key0CloudData, GCHandleType.Pinned); NerdGPG.GPG_LoadFromCloud(0, handle.AddrOfPinnedObject(), key0CloudData.Length); handle.Free(); } } GUILayout.EndHorizontal(); if (GUILayout.Button("GPG_HasAuthoriser", GUILayout.Height(60))) { Debug.Log("HasAuthoriser result " + NerdGPG.GPG_HasAuthoriser()); } GUILayout.EndVertical(); }