nightward/Assets/Scripts/Util/BackKeyAdd.cs

63 lines
1.3 KiB
C#
Raw Normal View History

2025-11-25 19:58:58 +00:00
using System;
using UnityEngine;
public class BackKeyAdd : MyCoroutine
{
public static bool DontBack;
Action Act_Back;
protected virtual void Awake()
{
}
public void Check()
{
if (gameObject.activeSelf)
Set_Off();
}
public virtual void Set()
{
Act_Back = null;
Set_On();
}
public virtual void Set(Action _actback = null)
{
Act_Back = _actback;
Set_On();
}
public virtual void Set(int _id)
{
Set();
}
protected void Set_BackAction(Action _actback) { Act_Back = _actback; }
protected void Set_On()
{
gameObject.SetActive(true);
BackKeyMgr.Ins.Add_Back(OnClick_Back);
}
protected void Set_Off()
{
gameObject.SetActive(false);
BackKeyMgr.Ins.Del_Back(OnClick_Back);
Act_Back?.Invoke();
}
public virtual void OnClick_Back()
{
if (DontBack) return;
Set_Off();
}
public virtual void Set_Chat()
{
transform.localPosition = new Vector3(86.4f, 0f);
BackKeyMgr.Ins.Add_Back(OnClick_ChatBack);
}
public virtual void OnClick_ChatBack()
{
transform.localPosition = Vector3.left * 600f;
BackKeyMgr.Ins.Del_Back(OnClick_ChatBack);
}
}