731 lines
22 KiB
C#
731 lines
22 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.Events;
|
|
using UnityEngine.EventSystems;
|
|
using DG.Tweening;
|
|
using Assets.Scripts.UI.Prefab.Login;
|
|
using Newtonsoft.Json;
|
|
using UnityEngine.UI;
|
|
using Assets.Scripts.UI.Control;
|
|
using Assets.Scripts;
|
|
using Assets.Scripts.Apis.Models;
|
|
using System.Linq;
|
|
using Newtonsoft.Json.Linq;
|
|
using System;
|
|
|
|
public class UIManager : MonoBehaviour
|
|
{
|
|
[SerializeField]
|
|
private PFUIPanel mMainPanel;
|
|
|
|
public PFUIPanel MainPanel
|
|
{
|
|
get
|
|
{
|
|
return this.mMainPanel;
|
|
}
|
|
set
|
|
{
|
|
this.mMainPanel = value;
|
|
}
|
|
}
|
|
|
|
public GameObject Root;
|
|
|
|
private HomeController mHomePanel;
|
|
public HomeController HomePanel
|
|
{
|
|
get
|
|
{
|
|
return this.GetPanelInstance("HomePanel", ref this.mHomePanel);
|
|
}
|
|
}
|
|
|
|
private UserInfoController mUserInfoPanel;
|
|
public UserInfoController UserInfoPanel
|
|
{
|
|
get
|
|
{
|
|
return this.GetPanelInstance<UserInfoController>("UserInfoPanel", ref this.mUserInfoPanel);
|
|
}
|
|
}
|
|
|
|
private DeviceController mDeviceController;
|
|
public DeviceController DevicePanel
|
|
{
|
|
get
|
|
{
|
|
return this.GetPanelInstance("DevicePanel", ref this.mDeviceController);
|
|
}
|
|
}
|
|
private SettingContoller mSettingContoller;
|
|
public SettingContoller SettingModal
|
|
{
|
|
get
|
|
{
|
|
return this.GetPanelInstance("SettingModal", ref this.mSettingContoller);
|
|
}
|
|
}
|
|
private FeedbackController mfeedbackController;
|
|
public FeedbackController FeedbackModal
|
|
{
|
|
get
|
|
{
|
|
return this.GetPanelInstance("FeedbackModal", ref this.mfeedbackController);
|
|
}
|
|
}
|
|
private NewsController mNewsContoller;
|
|
public NewsController NewsModal
|
|
{
|
|
get
|
|
{
|
|
return this.GetPanelInstance("NewsModal", ref this.mNewsContoller);
|
|
}
|
|
}
|
|
private DownloadController mDownloadModal;
|
|
public DownloadController DownloadModal
|
|
{
|
|
get
|
|
{
|
|
return this.GetPanelInstance("DownloadModal", ref this.mDownloadModal);
|
|
}
|
|
}
|
|
|
|
private MapListController mMapListController;
|
|
public MapListController MapListPanel
|
|
{
|
|
get
|
|
{
|
|
return this.GetPanelInstance("MapListPanel", ref this.mMapListController);
|
|
}
|
|
}
|
|
|
|
private MapDetailController mMapDetailController;
|
|
public MapDetailController MapDetailPanel
|
|
{
|
|
get
|
|
{
|
|
return this.GetPanelInstance("MapDetailPanel", ref this.mMapDetailController);
|
|
}
|
|
}
|
|
|
|
private CyclingController mCyclingController;
|
|
public CyclingController CyclingController
|
|
{
|
|
get
|
|
{
|
|
return this.GetPanelInstance("CyclingController", ref this.mCyclingController);
|
|
}
|
|
}
|
|
|
|
private EditUserController mEditUserController;
|
|
public EditUserController EditUserPanel
|
|
{
|
|
get
|
|
{
|
|
return this.GetPanelInstance("EditUserPanel", ref this.mEditUserController);
|
|
}
|
|
}
|
|
/*比赛首页*/
|
|
private RaceHomeScript mRaceHomeScript;
|
|
public RaceHomeScript RaceHomePanel
|
|
{
|
|
get
|
|
{
|
|
return this.GetPanelInstance("RaceHomePanel", ref this.mRaceHomeScript);
|
|
}
|
|
}
|
|
public static void ShowRaceHomePanel(bool fromRaceList = false)
|
|
{
|
|
if (fromRaceList)
|
|
{
|
|
UIManager.PopStack();
|
|
}
|
|
UIManager.Show(UIManager.Instance.RaceHomePanel, UIManager.Instance.MainPanel);
|
|
}
|
|
/*比赛首页*/
|
|
/*比赛列表*/
|
|
private RaceListScript mRaceListScript;
|
|
public RaceListScript RaceListPanel
|
|
{
|
|
get
|
|
{
|
|
return this.GetPanelInstance("RaceListPanel", ref this.mRaceListScript);
|
|
}
|
|
}
|
|
public static void ShowRaceListPanel()
|
|
{
|
|
UIManager.Show(UIManager.Instance.RaceListPanel, UIManager.Instance.MainPanel);
|
|
}
|
|
/*比赛列表*/
|
|
private PFUIPanel mModalsPanel;
|
|
public PFUIPanel ModalsPanel
|
|
{
|
|
get
|
|
{
|
|
return this.mModalsPanel;
|
|
}
|
|
set
|
|
{
|
|
this.mModalsPanel = value;
|
|
}
|
|
}
|
|
|
|
|
|
public static UIManager Instance;
|
|
|
|
private static Stack<PFUIPanel> stack;
|
|
public static void PushHome()
|
|
{
|
|
stack.Clear();
|
|
stack.Push(UIManager.Instance.HomePanel);
|
|
}
|
|
private void Awake()
|
|
{
|
|
UIManager.Instance = this;
|
|
stack = new Stack<PFUIPanel>();
|
|
loginRegOptions = new LoginRegOptions();
|
|
var userInfosJson = PlayerPrefs.GetString("UserInfos");
|
|
userInfos = JsonConvert.DeserializeObject<List<QUserInfo>>(userInfosJson);
|
|
if (userInfos == null) userInfos = new List<QUserInfo>();
|
|
|
|
var settingsJson = PlayerPrefs.GetString("Settings");
|
|
settings = JsonConvert.DeserializeObject<Settings>(settingsJson);
|
|
if (settings == null) settings = new Settings();
|
|
|
|
userInfoIndex = PlayerPrefs.GetInt("UserInfoIndex");
|
|
collectDict = new Dictionary<bool, Sprite> {
|
|
{ false,Resources.Load<Sprite>("Images/p-4灰")},
|
|
{ true,Resources.Load<Sprite>("Images/p-4")},
|
|
};
|
|
var a = Resources.Load<TextAsset>("UI/simpleCountry");
|
|
var clist = JsonConvert.DeserializeObject<List<CountryInfo>>(a.text);
|
|
|
|
if(_now == null)
|
|
{
|
|
Debug.Log(123);
|
|
InitNow();
|
|
}
|
|
}
|
|
|
|
// Start is called before the first frame update
|
|
void Start()
|
|
{
|
|
|
|
}
|
|
|
|
// Update is called once per frame
|
|
void Update()
|
|
{
|
|
|
|
}
|
|
|
|
private T GetPanelInstance<T>(string prefabName, ref T internalComponent)
|
|
{
|
|
if (internalComponent == null)
|
|
{
|
|
UnityEngine.Object @object = Resources.Load("UI/Prefab/Panel/" + prefabName);
|
|
if (@object != null)
|
|
{
|
|
GameObject gameObject = (GameObject)UnityEngine.Object.Instantiate(@object, base.transform.parent, false);
|
|
if (gameObject != null)
|
|
{
|
|
internalComponent = gameObject.GetComponent<T>();
|
|
}
|
|
}
|
|
}
|
|
|
|
return internalComponent;
|
|
}
|
|
|
|
private T GetInstance<T>(string prefabName, ref T internalComponent)
|
|
{
|
|
if (internalComponent == null)
|
|
{
|
|
UnityEngine.Object @object = Resources.Load("UI/Prefab/Common/" + prefabName);
|
|
if (@object != null)
|
|
{
|
|
GameObject gameObject = (GameObject)UnityEngine.Object.Instantiate(@object, base.transform.parent, false);
|
|
if (gameObject != null)
|
|
{
|
|
internalComponent = gameObject.GetComponent<T>();
|
|
}
|
|
}
|
|
}
|
|
|
|
return internalComponent;
|
|
}
|
|
|
|
private static PFUIPanel prePanel = null;
|
|
private static PFUIPanel currentPanel = null;
|
|
public static void Show(PFUIPanel panelToShow, PFUIPanel parent = null, bool modal = false)
|
|
{
|
|
if (UIManager.Instance == null || panelToShow == null)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if (modal)
|
|
{
|
|
parent = UIManager.Instance.ModalsPanel;
|
|
}
|
|
else
|
|
{
|
|
var root = UIManager.Instance.Root;
|
|
for (int i = 0; i < root.transform.childCount; i++)
|
|
{
|
|
var panel1 = root.transform.GetChild(i).GetComponent<PFUIPanel>();
|
|
if (panel1 != null)
|
|
{
|
|
panel1.Close();
|
|
}
|
|
}
|
|
|
|
if (currentPanel != null)
|
|
{
|
|
currentPanel.Close();
|
|
}
|
|
//prePanel = panelToShow;
|
|
prePanel = currentPanel;
|
|
currentPanel = panelToShow;
|
|
stack.Push(panelToShow);
|
|
}
|
|
if (parent != null && parent.IsActive() == false)
|
|
{
|
|
parent.gameObject.SetActive(true);
|
|
}
|
|
|
|
//foreach (Transform child in parent.transform)
|
|
//{
|
|
// //GameObject.Destroy(child);
|
|
// //GameObject.Destroy(child.gameObject);
|
|
// child.gameObject.SetActive(false);
|
|
//}
|
|
|
|
//var panel = UIManager.Instance.MainPanel; //UIManager.Instance.MainCanvasTransform.transform.Find("Panel");
|
|
|
|
//panel.gameObject.AddComponent<GameObject>(panelToShow.gameObject);
|
|
//panelToShow.transform.SetParent(parent.transform);
|
|
parent.AddChild(panelToShow);
|
|
//panelToShow.gameObject.SetActive(true);
|
|
panelToShow.Show();
|
|
//panelToShow.transform.position = new Vector3(0, 0, 0);
|
|
panelToShow.transform.localPosition = new Vector3(0, 0, 0);
|
|
//panelToShow.transform.localRotation = new Quaternion(0, 0, 0, 0);
|
|
|
|
//if (modal == false)
|
|
{
|
|
panelToShow.transform.GetComponent<RectTransform>().offsetMin = new Vector2(0, 0);
|
|
panelToShow.transform.GetComponent<RectTransform>().offsetMax = new Vector2(0, 0);
|
|
}
|
|
panelToShow.transform.localScale = parent.transform.localScale;
|
|
}
|
|
|
|
public static void ShowCustom(PFUIPanel panelToShow, GameObject parent = null, bool modal = false)
|
|
{
|
|
if (UIManager.Instance == null || panelToShow == null)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if (modal)
|
|
{
|
|
parent = UIManager.Instance.ModalsPanel.gameObject;
|
|
}
|
|
else
|
|
{
|
|
if (prePanel != null)
|
|
{
|
|
prePanel.Close();
|
|
}
|
|
prePanel = panelToShow;
|
|
}
|
|
foreach (Transform child in parent.transform)
|
|
{
|
|
//GameObject.Destroy(child);
|
|
//GameObject.Destroy(child.gameObject);
|
|
child.gameObject.SetActive(false);
|
|
}
|
|
|
|
//var panel = UIManager.Instance.MainPanel; //UIManager.Instance.MainCanvasTransform.transform.Find("Panel");
|
|
|
|
//panel.gameObject.AddComponent<GameObject>(panelToShow.gameObject);
|
|
//panelToShow.transform.SetParent(parent.transform);
|
|
panelToShow.transform.parent = parent.transform;
|
|
//panelToShow.gameObject.SetActive(true);
|
|
panelToShow.Show();
|
|
//panelToShow.transform.position = new Vector3(0, 0, 0);
|
|
panelToShow.transform.localPosition = new Vector3(0, 0, 0);
|
|
//panelToShow.transform.localRotation = new Quaternion(0, 0, 0, 0);
|
|
|
|
//if (modal == false)
|
|
{
|
|
panelToShow.transform.GetComponent<RectTransform>().offsetMin = new Vector2(0, 0);
|
|
panelToShow.transform.GetComponent<RectTransform>().offsetMax = new Vector2(0, 0);
|
|
}
|
|
panelToShow.transform.localScale = parent.transform.localScale;
|
|
}
|
|
|
|
|
|
//public static void ShowHomePanel()
|
|
//{
|
|
// UIManager.Show(UIManager.Instance.PanelHome, UIManager.Instance.MainPanel);
|
|
//}
|
|
|
|
public static void ShowUserInfoPanel()
|
|
{
|
|
UIManager.Instance.UserInfoPanel.Reset();
|
|
UIManager.Show(UIManager.Instance.UserInfoPanel, UIManager.Instance.MainPanel);
|
|
}
|
|
|
|
public static void ShowHomePanel()
|
|
{
|
|
stack.Clear();
|
|
UIManager.Show(UIManager.Instance.HomePanel, UIManager.Instance.MainPanel);
|
|
}
|
|
|
|
public static void ShowDevicePanel()
|
|
{
|
|
UIManager.Show(UIManager.Instance.DevicePanel, null, true);
|
|
}
|
|
public static void ShowSettingModal()
|
|
{
|
|
UIManager.Show(UIManager.Instance.SettingModal, null, true);
|
|
}
|
|
public static void ShowNewsModal()
|
|
{
|
|
UIManager.Show(UIManager.Instance.NewsModal, null, true);
|
|
}
|
|
public static void ShowDownloadModal()
|
|
{
|
|
UIManager.Show(UIManager.Instance.DownloadModal, null, true);
|
|
}
|
|
public static void ShowFeedBackModal()
|
|
{
|
|
UIManager.Show(UIManager.Instance.FeedbackModal, null, true);
|
|
}
|
|
public static void ShowEditUserPanel()
|
|
{
|
|
UIManager.Show(UIManager.Instance.EditUserPanel, UIManager.Instance.MainPanel);
|
|
}
|
|
|
|
//LoadingPf loading;
|
|
public static void ShowLoadingDialogBox()
|
|
{
|
|
if (UIManager.Instance == null)
|
|
{
|
|
return;
|
|
}
|
|
//if(UIManager.Instance.loading == null)
|
|
//{
|
|
// UIManager.Instance.loading = UIManager.Instance.GetInstance<LoadingPf>("Loading", ref UIManager.Instance.loading);
|
|
// UIManager.Instance.loading.GetComponent<RectTransform>().position = new Vector3(Screen.width / 2, Screen.height / 2, 0);
|
|
// //var rect = UIManager.Instance.loading.GetComponent<RectTransform>().rect;
|
|
// //rect.width = 154;
|
|
// //rect.height = 111;
|
|
// UIManager.Instance.loading.GetComponent<RectTransform>().sizeDelta = new Vector2(154, 111);
|
|
// //var rrr = UIManager.Instance.loading.GetComponent<RectTransform>();
|
|
|
|
// UIManager.Instance.loading.Initial();
|
|
|
|
// UIManager.Show(UIManager.Instance.loading, null, true);
|
|
//}
|
|
//else
|
|
//{
|
|
// UIManager.Instance.loading.Show();
|
|
//}
|
|
Utils.showLoading(UIManager.Instance.ModalsPanel.gameObject);
|
|
}
|
|
|
|
public static void HideLoadingDialogBox()
|
|
{
|
|
if (UIManager.Instance == null)
|
|
{
|
|
return;
|
|
}
|
|
Utils.hideLoading(UIManager.Instance.ModalsPanel.gameObject);
|
|
}
|
|
|
|
|
|
public static void ShowMapListPanel()
|
|
{
|
|
Debug.Log("清空");
|
|
//App.propTextureCache["recordCache"].Clear();
|
|
UIManager.Instance.MapListPanel.ResetPanel();
|
|
UIManager.Show(UIManager.Instance.MapListPanel, UIManager.Instance.MainPanel);
|
|
}
|
|
public static void ShowMapDetailPanel(int id)
|
|
{
|
|
var ctrl = UIManager.Instance.MapDetailPanel;
|
|
ctrl.id = id;
|
|
UIManager.Show(UIManager.Instance.MapDetailPanel, UIManager.Instance.MainPanel);
|
|
}
|
|
public static void PopStack(int count = 1)
|
|
{
|
|
for (int i = 0; i < count && stack.Count>0; i++)
|
|
{
|
|
stack.Pop();
|
|
}
|
|
}
|
|
public static void ShowPrePanel()
|
|
{
|
|
stack.Pop();
|
|
var panel = stack.Pop();
|
|
if (panel == null)
|
|
{
|
|
if (App.pageName == "map")
|
|
{
|
|
ShowBigMapPanel();
|
|
}
|
|
else if (App.pageName == "earth")
|
|
{
|
|
ShowEarthPanel();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
UIManager.Show(panel, UIManager.Instance.MainPanel);
|
|
}
|
|
|
|
//if (prePanel.name.Contains("EditUserPanel"))
|
|
//{
|
|
// UIManager.Show(UIManager.Instance.HomePanel, UIManager.Instance.MainPanel);
|
|
//}
|
|
//else
|
|
//{
|
|
// UIManager.Show(prePanel, UIManager.Instance.MainPanel);
|
|
//}
|
|
}
|
|
public static void ShowBigMapPanel(double lat = 0, double lon = 0)
|
|
{
|
|
UIManager.Instance.MainPanel.gameObject.SetActive(false);
|
|
var obj = Resources.Load("UI/Prefab/Panel/BigMapPanel");
|
|
//var root = UIManager.Instance.MainPanel.transform.parent.parent;
|
|
var bigMap = (GameObject)Instantiate(obj, UIManager.Instance.Root.transform);
|
|
bigMap.GetComponent<BigMapController>().Show(lat, lon);
|
|
stack.Push(null);
|
|
App.pageName = "map";
|
|
//prePanel = bigMap.GetComponent<PFUIPanel>();
|
|
}
|
|
|
|
static GameObject earthPanel = null;
|
|
public static void ShowEarthPanel(double lat = 0, double lon = 0)
|
|
{
|
|
if (UIManager.Instance.MainPanel != null)
|
|
{
|
|
UIManager.Instance.MainPanel.gameObject.SetActive(false);
|
|
}
|
|
if (earthPanel == null)
|
|
{
|
|
var obj = Resources.Load("UI/Prefab/Panel/EarthPanel");
|
|
//var root = UIManager.Instance.MainPanel.transform.parent.parent;
|
|
earthPanel = (GameObject)Instantiate(obj, UIManager.Instance.Root.transform);
|
|
}
|
|
stack.Push(null);
|
|
App.pageName = "earth";
|
|
earthPanel.GetComponent<EarthController>().Show(lat, lon);
|
|
}
|
|
|
|
static Texture2D cursor;
|
|
public static void RemoveEvent(GameObject gameObject)
|
|
{
|
|
EventTrigger et = gameObject.GetComponent<EventTrigger>();
|
|
if (et == null) return;
|
|
et.triggers.RemoveAll(x => true);
|
|
}
|
|
public static void AddEvent(GameObject gameObject, EventTriggerType eventTriggerType, UnityAction<BaseEventData> call)
|
|
{
|
|
EventTrigger et = gameObject.GetComponent<EventTrigger>();
|
|
EventTrigger.Entry pointerEvent = null;
|
|
if (et == null)
|
|
{
|
|
et = gameObject.AddComponent<EventTrigger>();
|
|
}
|
|
foreach (EventTrigger.Entry entry2 in et.triggers)
|
|
{
|
|
if(entry2.eventID == eventTriggerType)
|
|
{
|
|
pointerEvent = entry2;
|
|
break;
|
|
}
|
|
}
|
|
if (pointerEvent == null)
|
|
{
|
|
pointerEvent = new EventTrigger.Entry();
|
|
pointerEvent.eventID = eventTriggerType;
|
|
et.triggers.Add(pointerEvent);
|
|
}
|
|
//pointerEvent.callback.RemoveAllListeners();
|
|
|
|
pointerEvent.callback.AddListener((e)=> {
|
|
if (gameObject == null || gameObject.activeInHierarchy == false) return;
|
|
var btn = gameObject.GetComponent<Button>();
|
|
if(btn != null && btn.enabled == false)
|
|
{
|
|
return;
|
|
}
|
|
|
|
call(e);
|
|
});
|
|
|
|
|
|
if (eventTriggerType == EventTriggerType.PointerClick)
|
|
{
|
|
//设置光标
|
|
if (cursor == null)
|
|
{
|
|
cursor = Resources.Load<Texture2D>("Images/PointerButtonHover");
|
|
}
|
|
UIManager.AddEvent(gameObject, EventTriggerType.PointerEnter, (e) =>
|
|
{
|
|
//if (!gameObject.activeInHierarchy) return;
|
|
Cursor.SetCursor(cursor, Vector2.zero, CursorMode.Auto);
|
|
});
|
|
UIManager.AddEvent(gameObject, EventTriggerType.PointerUp, (e) =>
|
|
{
|
|
//if (!gameObject.activeInHierarchy) return;
|
|
Cursor.SetCursor(null, Vector2.zero, CursorMode.Auto);
|
|
});
|
|
UIManager.AddEvent(gameObject, EventTriggerType.PointerExit, (e) =>
|
|
{
|
|
//if (!gameObject.activeInHierarchy) return;
|
|
Cursor.SetCursor(null, Vector2.zero, CursorMode.Auto);
|
|
});
|
|
}
|
|
}
|
|
|
|
public static void Close(MonoBehaviour obj)
|
|
{
|
|
obj.gameObject.SetActive(false);
|
|
}
|
|
|
|
public static void CloseModal()
|
|
{
|
|
//foreach (var item in UIManager.Instance.ModalsPanel.transform.DetachChildren)
|
|
//{
|
|
// item.
|
|
//}
|
|
|
|
//UIManager.Instance.ModalsPanel.transform.DetachChildren();
|
|
//UIManager.Instance.ModalsPanel.transform.childCount
|
|
//for (int i = 0; i < UIManager.Instance.ModalsPanel.transform.childCount; i++)
|
|
{
|
|
var obj = UIManager.Instance.ModalsPanel.transform.GetChild(UIManager.Instance.ModalsPanel.transform.childCount - 1);
|
|
obj.gameObject.SetActive(false);
|
|
//DestroyImmediate(obj.gameObject);
|
|
}
|
|
}
|
|
|
|
Alert alert = null;
|
|
public static void ShowAlert(string msg)
|
|
{
|
|
if (UIManager.Instance == null)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if (UIManager.Instance.alert == null)
|
|
{
|
|
UIManager.Instance.alert = UIManager.Instance.GetInstance<Alert>("Alert", ref UIManager.Instance.alert);
|
|
UIManager.Instance.alert.SetText(msg);
|
|
UIManager.Show(UIManager.Instance.alert, null, true);
|
|
}
|
|
else
|
|
{
|
|
UIManager.Instance.alert.Show();
|
|
UIManager.Instance.alert.SetText(msg);
|
|
}
|
|
}
|
|
|
|
Confirm confirm = null;
|
|
public static void ShowConfirm(string title, string content, UnityAction action,int type=1)
|
|
{
|
|
if (UIManager.Instance == null)
|
|
{
|
|
return;
|
|
}
|
|
if(UIManager.Instance.confirm == null)
|
|
{
|
|
UIManager.Instance.confirm = UIManager.Instance.GetInstance<Confirm>("Confirm", ref UIManager.Instance.confirm);
|
|
UIManager.Show(UIManager.Instance.confirm, null, true);
|
|
UIManager.Instance.confirm.Set(title, content, action);
|
|
}
|
|
else
|
|
{
|
|
UIManager.Instance.confirm.Show();
|
|
UIManager.Instance.confirm.Set(title, content, action);
|
|
}
|
|
UIManager.Instance.confirm.SetType(type);
|
|
}
|
|
public static void CloseConfirm()
|
|
{
|
|
if (UIManager.Instance.confirm != null)
|
|
{
|
|
UIManager.Instance.confirm.Close();
|
|
}
|
|
}
|
|
public LoginRegOptions loginRegOptions { get; private set; }
|
|
private List<QUserInfo> _userInfos;
|
|
public List<QUserInfo> userInfos
|
|
{
|
|
get
|
|
{
|
|
return _userInfos;
|
|
}
|
|
set
|
|
{
|
|
_userInfos = value;
|
|
PlayerPrefs.SetString("UserInfos", JsonConvert.SerializeObject(value));
|
|
}
|
|
}
|
|
public Dictionary<bool, Sprite> collectDict { get; private set; }
|
|
private int _userInfoIndex;
|
|
public int userInfoIndex
|
|
{
|
|
get
|
|
{
|
|
return _userInfoIndex;
|
|
}
|
|
set
|
|
{
|
|
_userInfoIndex = value;
|
|
PlayerPrefs.SetInt("UserInfoIndex", value);
|
|
}
|
|
}
|
|
private Settings _settings;
|
|
public Settings settings
|
|
{
|
|
get
|
|
{
|
|
return _settings;
|
|
}
|
|
set
|
|
{
|
|
_settings = value;
|
|
PlayerPrefs.SetString("Settings", JsonConvert.SerializeObject(value));
|
|
}
|
|
}
|
|
|
|
private static CustomDateTime _now;
|
|
public static CustomDateTime Now
|
|
{
|
|
get
|
|
{
|
|
return _now;
|
|
}
|
|
}
|
|
|
|
private async void InitNow()
|
|
{
|
|
var now = await ConfigHelper.userApi.GetNow();
|
|
_now = new CustomDateTime(now);
|
|
}
|
|
|
|
private void OnDestroy()
|
|
{
|
|
UIManager.Instance = null;
|
|
}
|
|
|
|
}
|