|
|
/*
|
|
|
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<AndroidJavaObject>("currentActivity");
|
|
|
AndroidJavaObject androidJavaObject = @static.Call<AndroidJavaObject>("getPackageManager", new object[0]);
|
|
|
AndroidJavaObject androidJavaObject2 = androidJavaObject.Call<AndroidJavaObject>("getInstalledPackages", new object[1]
|
|
|
{
|
|
|
0
|
|
|
});
|
|
|
int num = androidJavaObject2.Call<int>("size", new object[0]);
|
|
|
for (int i = 0; i < num; i++)
|
|
|
{
|
|
|
AndroidJavaObject androidJavaObject3 = androidJavaObject2.Call<AndroidJavaObject>("get", new object[1]
|
|
|
{
|
|
|
i
|
|
|
});
|
|
|
string text = androidJavaObject3.Get<string>("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<T>(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);
|
|
|
}
|
|
|
}
|