using UnityEngine; using Viveport; using Viveport.Core; public class ViveportDemo : MonoBehaviour { private class MyLicenseChecker : Api.LicenseChecker { public override void OnSuccess(long issueTime, long expirationTime, int latestVersion, bool updateRequired) { Viveport.Core.Logger.Log("[MyLicenseChecker] issueTime: " + issueTime); Viveport.Core.Logger.Log("[MyLicenseChecker] expirationTime: " + expirationTime); Viveport.Core.Logger.Log("[MyLicenseChecker] latestVersion: " + latestVersion); Viveport.Core.Logger.Log("[MyLicenseChecker] updateRequired: " + updateRequired); } public override void OnFailure(int errorCode, string errorMessage) { Viveport.Core.Logger.Log("[MyLicenseChecker] errorCode: " + errorCode); Viveport.Core.Logger.Log("[MyLicenseChecker] errorMessage: " + errorMessage); } } private int nInitValue; private int nResult; private int nWidth = 110; private int nHeight = 40; private int nXStart = 10; private int nYStart = 35; private string stringToEdit = "ID_Stat1"; private string StatsCount = "80"; private string achivToEdit = "ID_Achievement1"; private string leaderboardToEdit = "ID_Leaderboard1"; private string leaderboardUserName = "Karl"; private string leaderboardScore = "1000"; private static bool bInit = true; private static bool bIsReady; private static bool bUserProfileIsReady; private static bool bArcadeIsReady; private static bool bTokenIsReady; private static string msgBuffer = string.Empty; private static string APP_ID = "bd67b286-aafc-449d-8896-bb7e9b351876"; private static string APP_KEY = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDFypCg0OHfBC+VZLSWPbNSgDo9qg/yQORDwGy1rKIboMj3IXn4Zy6h6bgn8kiMY7VI0lPwIj9lijT3ZxkzuTsI5GsK//Y1bqeTol4OUFR+47gj+TUuekAS2WMtglKox+/7mO6CA1gV+jZrAKo6YSVmPd+oFsgisRcqEgNh5MIURQIDAQAB"; private static void Log(string msg) { msgBuffer = msg + "\n" + msgBuffer; Viveport.Core.Logger.Log(msg); } private void Start() { Api.Init(InitStatusHandler, APP_ID); } private void Update() { } private void OnGUI() { GUIStyle style = new GUIStyle("button"); GUIStyle gUIStyle = new GUIStyle("button"); gUIStyle.fontSize = 10; if (!bInit) { GUI.contentColor = Color.white; } else { GUI.contentColor = Color.grey; } if (GUI.Button(new Rect(nXStart, nYStart, nWidth, nHeight), "Init", style) && !bInit) { Api.Init(InitStatusHandler, APP_ID); } if (bInit) { GUI.contentColor = Color.white; } else { GUI.contentColor = Color.grey; } if (GUI.Button(new Rect(nXStart + (nWidth + 10), nYStart, nWidth, nHeight), "Shutdown", style) && bInit) { Api.Shutdown(ShutdownHandler); } if (GUI.Button(new Rect(nXStart + 2 * (nWidth + 10), nYStart, nWidth, nHeight), "Version", style) && bInit) { Viveport.Core.Logger.Log("Version: " + Api.Version()); } if (GUI.Button(new Rect(nXStart + 3 * (nWidth + 10), nYStart, nWidth, nHeight), "QueryRunMode", style) && bInit) { Api.QueryRuntimeMode(QueryRunTimeHandler); } if (GUI.Button(new Rect(nXStart + 4 * (nWidth + 10), nYStart, nWidth, nHeight), "StatIsReady", style) && bInit) { UserStats.IsReady(IsReadyHandler); } if (GUI.Button(new Rect(nXStart + 6 * (nWidth + 10), nYStart, nWidth, nHeight), "DRM", style)) { if (bInit) { Api.GetLicense(new MyLicenseChecker(), APP_ID, APP_KEY); } else { Viveport.Core.Logger.Log("Please make sure init & isReady are successful."); } } if (GUI.Button(new Rect(nXStart + 5 * (nWidth + 10), nYStart, nWidth, nHeight), "ArcadeIsReady", style) && bInit) { ArcadeLeaderboard.IsReady(IsArcadeLeaderboardReadyHandler); } if (bInit && bIsReady) { GUI.contentColor = Color.white; } else { GUI.contentColor = Color.grey; } if (GUI.Button(new Rect(nXStart + 7 * (nWidth + 10), nYStart, nWidth, nHeight), "UserProfileIsReady", gUIStyle)) { if (bInit && bIsReady) { User.IsReady(UserProfileIsReadyHandler); } else { Log("Please make sure init & isReady are successful."); } } if (GUI.Button(new Rect(nXStart + 8 * (nWidth + 10), nYStart, nWidth, nHeight), "UserProfile", style)) { if (bInit && bIsReady && bUserProfileIsReady) { Log("UserId: " + User.GetUserId()); Log("userName: " + User.GetUserName()); Log("userAvatarUrl: " + User.GetUserAvatarUrl()); } else { Log("Please make sure init & isReady are successful."); } } stringToEdit = GUI.TextField(new Rect(10f, nWidth + 10, 120f, 20f), stringToEdit, 50); StatsCount = GUI.TextField(new Rect(130f, nWidth + 10, 220f, 20f), StatsCount, 50); if (GUI.Button(new Rect(nXStart, nYStart + nWidth + 10, nWidth, nHeight), "DownloadStat", style)) { if (bInit && bIsReady) { UserStats.DownloadStats(DownloadStatsHandler); } else { Viveport.Core.Logger.Log("Please make sure init & isReady are successful."); } } if (GUI.Button(new Rect(nXStart + (nWidth + 10), nYStart + nWidth + 10, nWidth, nHeight), "UploadStat", style)) { if (bInit && bIsReady) { UserStats.UploadStats(UploadStatsHandler); } else { Viveport.Core.Logger.Log("Please make sure init & isReady are successful."); } } if (GUI.Button(new Rect(nXStart + 2 * (nWidth + 10), nYStart + nWidth + 10, nWidth, nHeight), "GetStat", style)) { if (bInit && bIsReady) { nResult = UserStats.GetStat(stringToEdit, nInitValue); Viveport.Core.Logger.Log("Get " + stringToEdit + " stat name as => " + nResult); } else { Viveport.Core.Logger.Log("Please make sure init & isReady are successful."); } } if (GUI.Button(new Rect(nXStart + 3 * (nWidth + 10), nYStart + nWidth + 10, nWidth, nHeight), "SetStat", style)) { if (bInit && bIsReady) { Viveport.Core.Logger.Log("MaxStep is => " + int.Parse(StatsCount)); nResult = int.Parse(StatsCount); UserStats.SetStat(stringToEdit, nResult); Viveport.Core.Logger.Log("Set" + stringToEdit + " stat name as =>" + nResult); } else { Viveport.Core.Logger.Log("Please make sure init & isReady are successful."); } } achivToEdit = GUI.TextField(new Rect(10f, 2 * nWidth + 15, 120f, 20f), achivToEdit, 50); if (GUI.Button(new Rect(nXStart, nYStart + 2 * nWidth + 10, nWidth, nHeight), "GetAchieve", style)) { if (bInit && bIsReady) { bool flag = false; flag = UserStats.GetAchievement(achivToEdit); Viveport.Core.Logger.Log("Get achievement => " + achivToEdit + " , and value is => " + flag); } else { Viveport.Core.Logger.Log("Please make sure init & isReady are successful."); } } if (GUI.Button(new Rect(nXStart + nWidth + 10, nYStart + 2 * nWidth + 10, nWidth, nHeight), "SetAchieve", style)) { if (bInit && bIsReady) { UserStats.SetAchievement(achivToEdit); Viveport.Core.Logger.Log("Set achievement => " + achivToEdit); } else { Viveport.Core.Logger.Log("Please make sure init & isReady are successful."); } } if (GUI.Button(new Rect(nXStart + 2 * (nWidth + 10), nYStart + 2 * nWidth + 10, nWidth, nHeight), "ClearAchieve", style)) { if (bInit && bIsReady) { UserStats.ClearAchievement(achivToEdit); Viveport.Core.Logger.Log("Clear achievement => " + achivToEdit); } else { Viveport.Core.Logger.Log("Please make sure init & isReady are successful."); } } if (GUI.Button(new Rect(nXStart + 3 * (nWidth + 10), nYStart + 2 * nWidth + 10, nWidth, nHeight), "Achieve&Time", style)) { if (bInit && bIsReady) { int num = 0; num = UserStats.GetAchievementUnlockTime(achivToEdit); Viveport.Core.Logger.Log("The achievement's unlock time is =>" + num); } else { Viveport.Core.Logger.Log("Please make sure init & isReady are successful."); } } leaderboardToEdit = GUI.TextField(new Rect(10f, 3 * nWidth + 20, 160f, 20f), leaderboardToEdit, 150); if (GUI.Button(new Rect(nXStart, nYStart + 3 * nWidth + 20, nWidth, nHeight), "DL Around", style)) { if (bInit && bIsReady) { UserStats.DownloadLeaderboardScores(DownloadLeaderboardHandler, leaderboardToEdit, UserStats.LeaderBoardRequestType.GlobalDataAroundUser, UserStats.LeaderBoardTimeRange.AllTime, -5, 5); Viveport.Core.Logger.Log("DownloadLeaderboardScores"); } else { Viveport.Core.Logger.Log("Please make sure init & isReady are successful."); } } if (GUI.Button(new Rect(nXStart + (nWidth + 10), nYStart + 3 * nWidth + 20, nWidth, nHeight), "DL not Around", style)) { if (bInit && bIsReady) { UserStats.DownloadLeaderboardScores(DownloadLeaderboardHandler, leaderboardToEdit, UserStats.LeaderBoardRequestType.GlobalData, UserStats.LeaderBoardTimeRange.AllTime, 0, 10); Viveport.Core.Logger.Log("DownloadLeaderboardScores"); } else { Viveport.Core.Logger.Log("Please make sure init & isReady are successful."); } } leaderboardScore = GUI.TextField(new Rect(170f, 3 * nWidth + 20, 160f, 20f), leaderboardScore, 50); if (GUI.Button(new Rect(nXStart + 2 * (nWidth + 10), nYStart + 3 * nWidth + 20, nWidth, nHeight), "Upload LB", style)) { if (bInit && bIsReady) { UserStats.UploadLeaderboardScore(UploadLeaderboardScoreHandler, leaderboardToEdit, int.Parse(leaderboardScore)); Viveport.Core.Logger.Log("UploadLeaderboardScore"); } else { Viveport.Core.Logger.Log("Please make sure init & isReady are successful."); } } if (GUI.Button(new Rect(nXStart + 3 * (nWidth + 10), nYStart + 3 * nWidth + 20, nWidth, nHeight), "Get LB count", style)) { if (bInit && bIsReady) { nResult = UserStats.GetLeaderboardScoreCount(); Viveport.Core.Logger.Log("GetLeaderboardScoreCount=> " + nResult); } else { Viveport.Core.Logger.Log("Please make sure init & isReady are successful."); } } if (GUI.Button(new Rect(nXStart + 4 * (nWidth + 10), nYStart + 3 * nWidth + 20, nWidth, nHeight), "Get LB Score", style)) { if (bInit && bIsReady) { int leaderboardScoreCount = UserStats.GetLeaderboardScoreCount(); Viveport.Core.Logger.Log("GetLeaderboardScoreCount => " + leaderboardScoreCount); for (int i = 0; i < leaderboardScoreCount; i++) { Leaderboard leaderboard = UserStats.GetLeaderboardScore(i); Viveport.Core.Logger.Log("UserName = " + leaderboard.UserName + ", Score = " + leaderboard.Score + ", Rank = " + leaderboard.Rank); } } else { Viveport.Core.Logger.Log("Please make sure init & isReady are successful."); } } if (GUI.Button(new Rect(nXStart + 5 * (nWidth + 10), nYStart + 3 * nWidth + 20, nWidth, nHeight), "Get Sort Method", style)) { if (bInit && bIsReady) { int leaderboardSortMethod = (int)UserStats.GetLeaderboardSortMethod(); Viveport.Core.Logger.Log("GetLeaderboardSortMethod=> " + leaderboardSortMethod); } else { Viveport.Core.Logger.Log("Please make sure init & isReady are successful."); } } if (GUI.Button(new Rect(nXStart + 6 * (nWidth + 10), nYStart + 3 * nWidth + 20, nWidth, nHeight), "Get Disp Type", style)) { if (bInit && bIsReady) { int leaderboardDisplayType = (int)UserStats.GetLeaderboardDisplayType(); Viveport.Core.Logger.Log("GetLeaderboardDisplayType=> " + leaderboardDisplayType); } else { Viveport.Core.Logger.Log("Please make sure init & isReady are successful."); } } if (bInit && bArcadeIsReady) { GUI.contentColor = Color.white; } else { GUI.contentColor = Color.grey; } leaderboardToEdit = GUI.TextField(new Rect(10f, 4 * nWidth + 20, 160f, 20f), leaderboardToEdit, 150); if (GUI.Button(new Rect(nXStart, nYStart + 4 * nWidth + 20, nWidth, nHeight), "DL Arca LB", style)) { if (bInit && bArcadeIsReady) { ArcadeLeaderboard.DownloadLeaderboardScores(DownloadLeaderboardHandler, leaderboardToEdit, ArcadeLeaderboard.LeaderboardTimeRange.AllTime, 10); Viveport.Core.Logger.Log("DownloadLeaderboardScores"); } else { Viveport.Core.Logger.Log("Please make sure init & isReady are successful."); } } leaderboardUserName = GUI.TextField(new Rect(170f, 4 * nWidth + 20, 160f, 20f), leaderboardUserName, 150); leaderboardScore = GUI.TextField(new Rect(330f, 4 * nWidth + 20, 160f, 20f), leaderboardScore, 50); if (GUI.Button(new Rect(nXStart + (nWidth + 10), nYStart + 4 * nWidth + 20, nWidth, nHeight), "UL Arca LB", style)) { if (bInit && bArcadeIsReady) { ArcadeLeaderboard.UploadLeaderboardScore(UploadLeaderboardScoreHandler, leaderboardToEdit, leaderboardUserName, int.Parse(leaderboardScore)); Viveport.Core.Logger.Log("UploadLeaderboardScore"); } else { Viveport.Core.Logger.Log("Please make sure init & isReady are successful."); } } if (GUI.Button(new Rect(nXStart + 2 * (nWidth + 10), nYStart + 4 * nWidth + 20, nWidth, nHeight), "Get Arca Count", style)) { if (bInit && bArcadeIsReady) { nResult = ArcadeLeaderboard.GetLeaderboardScoreCount(); Viveport.Core.Logger.Log("GetLeaderboardScoreCount=> " + nResult); } else { Viveport.Core.Logger.Log("Please make sure init & Arcade isReady are successful."); } } if (GUI.Button(new Rect(nXStart + 3 * (nWidth + 10), nYStart + 4 * nWidth + 20, nWidth, nHeight), "Get Arca Score", style)) { if (bInit && bArcadeIsReady) { int leaderboardScoreCount2 = ArcadeLeaderboard.GetLeaderboardScoreCount(); Viveport.Core.Logger.Log("GetLeaderboardScoreCount => " + leaderboardScoreCount2); for (int j = 0; j < leaderboardScoreCount2; j++) { Leaderboard leaderboard2 = ArcadeLeaderboard.GetLeaderboardScore(j); Viveport.Core.Logger.Log("UserName = " + leaderboard2.UserName + ", Score = " + leaderboard2.Score + ", Rank = " + leaderboard2.Rank); } } else { Viveport.Core.Logger.Log("Please make sure init & isReady are successful."); } } if (GUI.Button(new Rect(nXStart + 4 * (nWidth + 10), nYStart + 4 * nWidth + 20, nWidth, nHeight), "Get AC UScore", style)) { if (bInit && bArcadeIsReady) { int leaderboardUserScore = ArcadeLeaderboard.GetLeaderboardUserScore(); Viveport.Core.Logger.Log("GetLeaderboardUserScore=> " + leaderboardUserScore); } else { Viveport.Core.Logger.Log("Please make sure init & isReady are successful."); } } if (GUI.Button(new Rect(nXStart + 5 * (nWidth + 10), nYStart + 4 * nWidth + 20, nWidth, nHeight), "Get AC URank", style)) { if (bInit && bArcadeIsReady) { int leaderboardUserRank = ArcadeLeaderboard.GetLeaderboardUserRank(); Viveport.Core.Logger.Log("GetLeaderboardUserRank=> " + leaderboardUserRank); } else { Viveport.Core.Logger.Log("Please make sure init & isReady are successful."); } } if (bInit) { GUI.contentColor = Color.white; } else { GUI.contentColor = Color.grey; } if (GUI.Button(new Rect(nXStart, nYStart + 5 * nWidth + 20, nWidth, nHeight), "TokenIsReady", style) && bInit) { Token.IsReady(IsTokenReadyHandler); } if (bInit && bTokenIsReady) { GUI.contentColor = Color.white; } else { GUI.contentColor = Color.grey; } if (GUI.Button(new Rect(nXStart + (nWidth + 10), nYStart + 5 * nWidth + 20, nWidth, nHeight), "SessionToken", style)) { if (bInit && bTokenIsReady) { Token.GetSessionToken(GetSessionTokenHandler); } else { Viveport.Core.Logger.Log("Please make sure init & tokenIsReady are successful."); } } } private static void InitStatusHandler(int nResult) { if (nResult == 0) { bInit = true; bIsReady = false; bArcadeIsReady = false; Viveport.Core.Logger.Log("InitStatusHandler is successful"); } else { bInit = false; Viveport.Core.Logger.Log("InitStatusHandler error : " + nResult); } } private static void IsReadyHandler(int nResult) { if (nResult == 0) { bIsReady = true; bArcadeIsReady = false; Viveport.Core.Logger.Log("IsReadyHandler is successful"); } else { bIsReady = false; Viveport.Core.Logger.Log("IsReadyHandler error: " + nResult); } } private static void IsTokenReadyHandler(int nResult) { if (nResult == 0) { bTokenIsReady = true; Viveport.Core.Logger.Log("IsTokenReadyHandler is successful"); } else { bTokenIsReady = false; Viveport.Core.Logger.Log("IsTokenReadyHandler error: " + nResult); } } private static void UserProfileIsReadyHandler(int nResult) { if (nResult == 0) { bUserProfileIsReady = true; Log("UserProfileIsReadyHandler is successful"); } else { bUserProfileIsReady = false; Log("UserProfileIsReadyHandler error: " + nResult); } } private static void GetSessionTokenHandler(int nResult, string message) { if (nResult == 0) { Viveport.Core.Logger.Log("GetSessionTokenHandler is successful, token:" + message); } else if (message.Length != 0) { Viveport.Core.Logger.Log("GetSessionTokenHandler error: " + nResult + ", message:" + message); } else { Viveport.Core.Logger.Log("GetSessionTokenHandler error: " + nResult); } } private static void QueryRunTimeHandler(int nResult, int nMode) { if (nResult == 0) { Viveport.Core.Logger.Log("QueryRunTimeHandler is successful" + nResult + "Running mode is " + nMode); } else { Viveport.Core.Logger.Log("QueryRunTimeHandler error: " + nResult); } } private static void IsArcadeLeaderboardReadyHandler(int nResult) { if (nResult == 0) { bArcadeIsReady = true; bIsReady = false; Viveport.Core.Logger.Log("IsArcadeLeaderboardReadyHandler is successful"); } else { bArcadeIsReady = false; Viveport.Core.Logger.Log("IsArcadeLeaderboardReadyHandler error: " + nResult); } } private static void ShutdownHandler(int nResult) { if (nResult == 0) { bInit = false; bIsReady = false; Viveport.Core.Logger.Log("ShutdownHandler is successful"); } else { Viveport.Core.Logger.Log("ShutdownHandler error: " + nResult); } } private static void DownloadStatsHandler(int nResult) { if (nResult == 0) { Viveport.Core.Logger.Log("DownloadStatsHandler is successful "); } else { Viveport.Core.Logger.Log("DownloadStatsHandler error: " + nResult); } } private static void UploadStatsHandler(int nResult) { if (nResult == 0) { Viveport.Core.Logger.Log("UploadStatsHandler is successful"); } else { Viveport.Core.Logger.Log("UploadStatsHandler error: " + nResult); } } private static void DownloadLeaderboardHandler(int nResult) { if (nResult == 0) { Viveport.Core.Logger.Log("DownloadLeaderboardHandler is successful"); } else { Viveport.Core.Logger.Log("DownloadLeaderboardHandler error: " + nResult); } } private static void UploadLeaderboardScoreHandler(int nResult) { if (nResult == 0) { Viveport.Core.Logger.Log("UploadLeaderboardScoreHandler is successful."); } else { Viveport.Core.Logger.Log("UploadLeaderboardScoreHandler error : " + nResult); } } }