using System; using Sirenix.OdinInspector; using UnityEngine; namespace SLSUtilities.UI { public class UIElementBase : SerializedMonoBehaviour { public RectTransform rectTransform; public CanvasGroup canvasGroup; private void Reset() { if(rectTransform == null) rectTransform = GetComponent(); if(canvasGroup == null) canvasGroup = GetComponent(); } public virtual void UpdateUI() { // Override in derived classes } public virtual void Show() { gameObject.SetActive(true); if(canvasGroup) { canvasGroup.alpha = 1; canvasGroup.blocksRaycasts = true; } } public virtual void Hide() { if(canvasGroup) { canvasGroup.alpha = 0; canvasGroup.blocksRaycasts = false; } gameObject.SetActive(false); } } }