/* http://www.cgsoso.com/forum-211-1.html CG搜搜 Unity3d 每日Unity3d插件免费更新 更有VIP资源! CGSOSO 主打游戏开发,影视设计等CG资源素材。 插件如若商用,请务必官网购买! daily assets update for try. U should buy the asset from home store if u use it in your project! */ using System; using UnityEngine; using UnityEngine.SceneManagement; public class CUtils { public static void OpenStore() { Application.OpenURL("https://play.google.com/store/apps/details?id=" + GameConfig.instance.androidPackageID); } public static void OpenStore(string id) { Application.OpenURL("https://play.google.com/store/apps/details?id=" + id); } public static void LikeFacebookPage(string faceID) { if (Application.platform == RuntimePlatform.IPhonePlayer || (Application.platform == RuntimePlatform.Android && CheckPackageAppIsPresent("com.facebook.katana"))) { Application.OpenURL("fb://page/" + faceID); } else { Application.OpenURL("https://www.facebook.com/" + faceID); } SetLikeFbPage(faceID); } private static bool CheckPackageAppIsPresent(string package) { AndroidJavaClass androidJavaClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject @static = androidJavaClass.GetStatic("currentActivity"); AndroidJavaObject androidJavaObject = @static.Call("getPackageManager", new object[0]); AndroidJavaObject androidJavaObject2 = androidJavaObject.Call("getInstalledPackages", new object[1] { 0 }); int num = androidJavaObject2.Call("size", new object[0]); for (int i = 0; i < num; i++) { AndroidJavaObject androidJavaObject3 = androidJavaObject2.Call("get", new object[1] { i }); string text = androidJavaObject3.Get("packageName"); if (text.CompareTo(package) == 0) { return true; } } return false; } public static void SetBuyItem() { SetBool("buy_item", value: true); } public static void SetRemoveAds(bool value) { SetBool("remove_ads", value); } public static bool IsAdsRemoved() { return GetBool("remove_ads"); } public static bool IsBuyItem() { return GetBool("buy_item"); } public static void SetRateGame() { SetBool("rate_game", value: true); } public static bool IsGameRated() { return GetBool("rate_game"); } public static void SetLikeFbPage(string id) { SetBool("like_page_" + id, value: true); } public static bool IsLikedFbPage(string id) { return GetBool("like_page_" + id); } public static void SetDouble(string key, double value) { PlayerPrefs.SetString(key, DoubleToString(value)); } public static double GetDouble(string key, double defaultValue) { string defaultValue2 = DoubleToString(defaultValue); return StringToDouble(PlayerPrefs.GetString(key, defaultValue2)); } public static double GetDouble(string key) { return GetDouble(key, 0.0); } private static string DoubleToString(double target) { return target.ToString("R"); } private static double StringToDouble(string target) { if (string.IsNullOrEmpty(target)) { return 0.0; } return double.Parse(target); } public static void SetBool(string key, bool value) { PlayerPrefs.SetInt(key, value ? 1 : 0); } public static bool GetBool(string key, bool defaultValue = false) { int defaultValue2 = defaultValue ? 1 : 0; return PlayerPrefs.GetInt(key, defaultValue2) == 1; } public static double GetCurrentTime() { return DateTime.Now.Subtract(new DateTime(1970, 1, 1, 0, 0, 0)).TotalSeconds; } public static double GetCurrentTimeInDays() { return DateTime.Now.Subtract(new DateTime(1970, 1, 1, 0, 0, 0)).TotalDays; } public static double GetCurrentTimeInMills() { return DateTime.Now.Subtract(new DateTime(1970, 1, 1, 0, 0, 0)).TotalMilliseconds; } public static T GetRandom(params T[] arr) { return arr[UnityEngine.Random.Range(0, arr.Length)]; } public static bool IsActionAvailable(string action, int time, bool availableFirstTime = true) { if (!PlayerPrefs.HasKey(action + "_time")) { if (!availableFirstTime) { SetActionTime(action); } return availableFirstTime; } int num = (int)(GetCurrentTime() - GetActionTime(action)); return num >= time; } public static double GetActionDeltaTime(string action) { if (GetActionTime(action) == 0.0) { return 0.0; } return GetCurrentTime() - GetActionTime(action); } public static void SetActionTime(string action) { SetDouble(action + "_time", GetCurrentTime()); } public static void SetActionTime(string action, double time) { SetDouble(action + "_time", time); } public static double GetActionTime(string action) { return GetDouble(action + "_time"); } public static void ShowInterstitialAd() { //if (IsActionAvailable("show_ads", GameConfig.instance.interstitialAdPeriod)) //{ // bool flag = AdmobController.isInterAdAvailable; // if (!flag) // { // IronSource.Agent.showInterstitial(); // } // if (flag) // { // SetActionTime("show_ads"); // } //} } public static void LoadScene(int sceneIndex, bool useScreenFader = false) { if (useScreenFader) { ScreenFader.instance.GotoScene(sceneIndex); } else { SceneManager.LoadScene(sceneIndex); } } public static void ReloadScene(bool useScreenFader = false) { int buildIndex = SceneManager.GetActiveScene().buildIndex; LoadScene(buildIndex, useScreenFader); } }