Files
JJBB/Assets/Project/Script/GUI/Guide/LockPanelCtr.cs
2024-08-23 15:49:34 +08:00

87 lines
2.4 KiB
C#
Raw Permalink 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 Games.Events;
using GCGame.Table;
using UnityEngine;
using UnityEngine.EventSystems;
public class LockPanelCtr : MonoBehaviour, IPointerDownHandler
{
private const int _lockID = 25;
public static LockPanelCtr Instance;
public GameObject _lockPanel;
private float _lockStart;
private float lockCountTime;
public bool isLock { get; private set; }
private void Awake()
{
Instance = this;
}
private void Start()
{
// 注初始状态标志位是false实际_lockPanel是active
// 如果后续有切换到false执行的操作需要额外处理
_lockPanel.SetActive(false);
lockCountTime = float.Parse(TableManager.GetSystemParamByID(_lockID).StringValue);
}
private void Update()
{
if (!isLock)
{
if (Input.touchCount > 0 || Input.anyKey || LoadingWindow._IsLoadingScene
|| GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Level <
int.Parse(TableManager.GetSystemParamByID(52).StringValue))
_lockStart = Time.realtimeSinceStartup;
else if (_lockStart + lockCountTime < Time.realtimeSinceStartup)
SetActive(true);
}
}
private void OnDestroy()
{
Instance = null;
}
public void OnPointerDown(PointerEventData eventData)
{
OnUnLock();
}
public void OnUnLock()
{
_lockStart = Time.realtimeSinceStartup;
SetActive(false);
}
private void SetActive(bool isActive)
{
if (isActive != isLock)
{
if (isActive)
{
UIManager.Instance().ShowBlurBackGround(UIInfo.LockPanel.name);
EventDispatcher.Instance.Dispatch(EventId.OpenLockCtr);
}
else
{
UIManager.Instance().HideBlurBackGround(UIInfo.LockPanel.name);
//ShowHidedUI();
}
_lockPanel.SetActive(isActive);
isLock = isActive;
}
}
//有些UI在锁屏的时候因为参数设置的问题被关闭了。
//这边在解锁的时候重新调用打开UI的接口
private void ShowHidedUI()
{
if (Singleton<ObjManager>.Instance.MainPlayer)
{
Singleton<ObjManager>.Instance.MainPlayer.ChangeSceneSpecialOpt();
Singleton<ObjManager>.Instance.MainPlayer.SpeaiclSceneUIControl();
}
}
}