mergemilitary/Assets/MMOModule/Scripts/MMOCore/MMOUIMgr/MMOUIBase.cs

100 lines
2.4 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Events;
namespace MMO
{
public class MMOUIBase : MonoBehaviour
{
public Action DelClose;
public bool IsOpened => gameObject.activeSelf;
public bool IsStack = true;
public bool AdaptIphoneX = true;
protected RectTransform mRect;
private float mOffsetY = 80;
private void Awake()
{
if (AdaptIphoneX)
{
mRect = GetComponent<RectTransform>();
if (mRect != null)
{
if (IsIphoneX)
{
mRect.offsetMax = new Vector2(mRect.offsetMax.x, -mOffsetY);
}
}
}
OnInit();
}
protected virtual void OnInit()
{
}
public virtual void OnOpen()
{
}
public virtual void OnClose()
{
DelClose?.Invoke();
}
public virtual void OnFocus(bool pFocus)
{
}
public void Close()
{
MMOModule.Instance.UIMgr.CloseUI(this);
}
protected void BindBtn(Button pBtn, UnityAction pDel)
{
pBtn.onClick.AddListener(pDel);
}
private bool IsIphoneX
{
get
{
string tModelStr = SystemInfo.deviceModel;
if (tModelStr.Contains("iPhone"))
{
string[] tNumStrs = tModelStr.Replace("iPhone", "").Split(',');
int tNumber1 = 0, tNumber2 = 0;
if (int.TryParse(tNumStrs[0], out tNumber1) && int.TryParse(tNumStrs[1], out tNumber2))
{
if (tNumber1 == 10 && (tNumber2 == 3 || tNumber2 == 6))//Include iPhoneX
return true;
if (tNumber1 == 12 && tNumber2 == 8)//Exclude iPhoneSE2
return false;
if (tNumber1 >= 11)
return true;
}
}
if (((float)Screen.height / Screen.width) > 1.95f)
return true;
return false;
}
}
}
}