using UnityEngine; using UnityEngine.AddressableAssets; public interface ISDUIElement { RectTransform ElementRect { get; } CanvasGroup RootCanvasGroup { get; } void Show (); void Dismiss (); } public class SDUIElement : MonoBehaviour, ISDUIElement { [SerializeField] RectTransform m_ElementRect; public RectTransform ElementRect { get { return m_ElementRect; } } [SerializeField] CanvasGroup m_RootCanvasGroup; public CanvasGroup RootCanvasGroup { get { return m_RootCanvasGroup; } } public virtual void Show () { } public virtual void Dismiss () { Addressables.ReleaseInstance (gameObject); } }