forked from zxl/Frame
1
0
Fork 0
Frame/Assets/Scripts/UI/UIBase.cs

74 lines
1.5 KiB
C#
Raw Normal View History

2024-04-03 14:38:44 +08:00
using System;
using UnityEngine;
2024-04-02 18:17:57 +08:00
namespace Game
{
2024-04-03 14:38:44 +08:00
[AttributeUsage(AttributeTargets.Class)]
class UITypeAttribute: Attribute
{
public UIType UIType { get; set; }
public UITypeAttribute(UIType uiType)
{
UIType = uiType;
}
}
public abstract class UIBase : IUI
2024-04-02 18:17:57 +08:00
{
private bool _isPause;
private bool _isActive;
private GameObject _self;
private CanvasGroup _group;
public bool isPause => _isPause;
public bool isActive => _isActive;
public GameObject self => _self;
2024-04-03 14:38:44 +08:00
public void SetGameObject(GameObject gameObject, bool isPause = true, bool isActive = false)
2024-04-02 18:17:57 +08:00
{
2024-04-03 14:38:44 +08:00
this._self = gameObject;
2024-04-02 18:17:57 +08:00
}
public virtual void Init()
{
_isPause = false;
_isActive = true;
}
public virtual void Open()
{
_self.SetActive(true);
}
public void Update(float dateTime)
{
if (_isPause) return;
}
public virtual void Close()
{
_self.SetActive(false);
}
public virtual void Pause()
{
_isPause = true;
_group.interactable = false;
}
public virtual void Resume()
{
_isPause = false;
_group.interactable = true;
}
public virtual void Dispose()
{
_isActive = false;
_isPause = true;
}
}
}