using UnityEngine; namespace SRF.UI { [RequireComponent(typeof(RectTransform))] [ExecuteInEditMode] public abstract class ResponsiveBase : SRMonoBehaviour { private bool _queueRefresh; protected RectTransform RectTransform { get { return (RectTransform)base.CachedTransform; } } protected void OnEnable() { _queueRefresh = true; } protected void OnRectTransformDimensionsChange() { _queueRefresh = true; } protected void Update() { if (_queueRefresh) { Refresh(); _queueRefresh = false; } } protected abstract void Refresh(); [ContextMenu("Refresh")] private void DoRefresh() { Refresh(); } } }