mergemilitary/Assets/TKGSDK/Common/GameInterface/TKGUtils.cs

239 lines
7.1 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Touka;
public class TKGUtils
{
/// <summary>
/// 是否首次触达某个事件
/// </summary>
/// <param name="_key"></param>
/// <returns></returns>
public static bool IfFirstCheckPlayerPrefs(string _key)
{
var isFirstClick = GetPlayerPrefsIntByKey(_key) == 0;
SavePlayerPrefsIntByKeyValue(_key, 1);
return isFirstClick;
}
/// <summary>
/// 本地存int
///
/// key 内部拼接了前缀Touka_
/// </summary>
/// <param name="_key"></param>
/// <param name="_defaultValue"></param>
/// <returns></returns>
public static int GetPlayerPrefsIntByKey(string _key, int _defaultValue = 0)
{
int value = PlayerPrefs.GetInt(string.Format("{0}{1}", StaticStringsPlayerPrefs.TOUKA_PREFIX, _key), _defaultValue);
return value;
}
/// <summary>
/// 本地取int
///
/// key 内部拼接了前缀Touka_
/// </summary>
/// <param name="_key"></param>
/// <param name="_newValue"></param>
public static void SavePlayerPrefsIntByKeyValue(string _key, int _newValue)
{
PlayerPrefs.SetInt(string.Format("{0}{1}", StaticStringsPlayerPrefs.TOUKA_PREFIX, _key), _newValue);
PlayerPrefs.Save();
}
/// <summary>
/// 本地存string
///
/// key 内部拼接了前缀Touka_
/// </summary>
/// <param name="_key"></param>
/// <param name="_defaultValue"></param>
/// <returns></returns>
public static string GetPlayerPrefsStringByKey(string _key, string _defaultValue = "")
{
string value = PlayerPrefs.GetString(string.Format("{0}{1}", StaticStringsPlayerPrefs.TOUKA_PREFIX, _key), _defaultValue);
return value;
}
/// <summary>
/// 本地取string
///
/// key 内部拼接了前缀Touka_
/// </summary>
/// <param name="_key"></param>
/// <param name="_newValue"></param>
public static void SavePlayerPrefsStringByKeyValue(string _key, string _newValue)
{
PlayerPrefs.SetString(string.Format("{0}{1}", StaticStringsPlayerPrefs.TOUKA_PREFIX, _key), _newValue);
PlayerPrefs.Save();
}
/// <summary>
/// 缓存当前时间
/// </summary>
/// <param name="_key"></param>
public static void SaveCurrTime2PlayerPrefs(string _key)
{
DateTime date1 = DateTime.Now;
string s1 = date1.ToString();
SavePlayerPrefsStringByKeyValue(_key, s1);
}
/// <summary>
/// 缓存本地时间为string
/// </summary>
/// <param name="_key"></param>
/// <param name="_dateStr"></param>
public static void SaveCurrTime2PlayerPrefsWithStringDate(string _key, string _dateStr)
{
SavePlayerPrefsStringByKeyValue(_key, _dateStr);
}
/// <summary>
/// 取出缓存string时间为 DateTime
/// </summary>
/// <param name="_key"></param>
/// <returns></returns>
public static DateTime GetDateTimeFromPlayerPrefs(string _key)
{
string firstDateValue = GetPlayerPrefsStringByKey(_key);
if (string.IsNullOrEmpty(firstDateValue))
{
return new DateTime(1990, 1, 1, 0, 0, 0);
}
DateTime dateOld = Convert.ToDateTime(firstDateValue);
return dateOld;
}
/// <summary>
/// 判断是否为新用户
///
/// 距离首次登录时间间隔24h以内为新用户
/// </summary>
/// <returns></returns>
public static bool isNewUser()
{
DateTime dateCurr = DateTime.Now;
string firstDateValue = GetPlayerPrefsStringByKey(StaticStringsPlayerPrefs.FirstLoginTime);
if (string.IsNullOrEmpty(firstDateValue))
{
Debug.Log("存的值为空,为新用户");
return true;
}
Debug.Log("读取出来的值: " + firstDateValue + " 现在的时间值:" + dateCurr.ToString()); // 06/16/2019 19:46:57
DateTime dateOld = Convert.ToDateTime(firstDateValue);
TimeSpan timeSpan = dateCurr - dateOld;
Debug.Log("timeSpan.Seconds : " + timeSpan.TotalMinutes);
if (timeSpan.TotalMinutes >= 24 * 60)
{
Debug.Log("不是新用户了");
return false;
}
Debug.Log("是新用户");
return true;
}
/// <summary>
/// equal double
/// </summary>
/// <param name="a"></param>
/// <param name="b"></param>
/// <returns></returns>
public static bool equalDouble(double a, double b)
{
if ((a - b > -0.000001) && (a - b) < 0.000001)
return true;
else
return false;
}
/// <summary>
/// Floats the equal.
/// </summary>
/// <returns><c>true</c>, if equal was floated, <c>false</c> otherwise.</returns>
/// <param name="a">The alpha component.</param>
/// <param name="b">The blue component.</param>
public static bool FloatEqual(float a, float b)
{
if ((a - b > -0.000001) && (a - b) < 0.000001)
{
return true;
}
else
{
return false;
}
}
public static string GetTodayDataStr()
{
string timeStr = DateTime.Now.ToString("yyyy-MM-dd");
return timeStr;
}
public static void OpenBrowserUrl(string _url)
{
Application.OpenURL(_url);
}
#region unity sdk only
public static void InitTenjinFirst()
{
ToukaUtils.InitTenjinFirst();
}
public static void ActiveAutoIV(bool pActive)
{
AutoIntersititialManager.Instance.ActiveLogic(pActive);
}
public static bool WillPlayInterstitial(bool pNormalIV = true)
{
return ToukaInterstitialTimer.Instance.CanShow(pNormalIV ? ToukaSDKManager.IVType.IV1 : ToukaSDKManager.IVType.IV2, true) && ToukaAdManager.Instance.IsReadyIntersitial();
}
public static bool IsNativeReady()
{
#if UNITY_IOS
return ToukaAdManager.Instance.IsReadyNative;
#else
return false;
#endif
}
public static void ShowNative(Vector3 pTL, Vector3 pBR, string pAdPos, Camera pCam = null)
{
#if UNITY_IOS
Vector2 tTopLeft = RectTransformUtility.WorldToScreenPoint(pCam, pTL);
Vector2 tBottomRight = RectTransformUtility.WorldToScreenPoint(pCam, pBR);
float tWidth = Mathf.Abs(tBottomRight.x - tTopLeft.x);
float tHeight = Mathf.Abs(tBottomRight.y - tTopLeft.y);
Debug.Log("TKG Native top left :" + tTopLeft);
Debug.Log("TKG Native bottom right :" + tBottomRight);
//Debug.Log("TKG Native width :" + Mathf.Abs(pBottomRight.x - pTopLeft.x));
//Debug.Log("TKG Native height :" + Mathf.Abs(pBottomRight.y - pTopLeft.y));
//Debug.Log("TKG Native screen width :" + Screen.width);
//Debug.Log("TKG Native screen height :" + Screen.height);
if (ToukaAdManager.Instance.IsReadyNative)
{
ToukaAdManager.Instance.ShowNative(tTopLeft.x, Screen.height - tTopLeft.y, tWidth, tHeight, pAdPos);
}
#endif
}
public static void RemoveNative()
{
#if UNITY_IOS
ToukaAdManager.Instance.HideNative(false);
#endif
}
#endregion
}