56 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C#
		
	
	
	
| namespace SRF.UI
 | |
| {
 | |
|     using UnityEngine;
 | |
| 
 | |
|     [ExecuteInEditMode]
 | |
|     [RequireComponent(typeof (RectTransform))]
 | |
|     public abstract class ResponsiveBase : SRMonoBehaviour
 | |
|     {
 | |
|         private bool _queueRefresh;
 | |
| 
 | |
|         protected RectTransform RectTransform
 | |
|         {
 | |
|             get { return (RectTransform) CachedTransform; }
 | |
|         }
 | |
| 
 | |
|         protected void OnEnable()
 | |
|         {
 | |
|             _queueRefresh = true;
 | |
|         }
 | |
| 
 | |
|         protected void OnRectTransformDimensionsChange()
 | |
|         {
 | |
|             _queueRefresh = true;
 | |
|         }
 | |
| 
 | |
|         protected void Update()
 | |
|         {
 | |
| #if UNITY_EDITOR
 | |
| 
 | |
|             // Refresh whenever we can in the editor, since layout has quirky update behaviour
 | |
|             // when not in play mode
 | |
|             if (!Application.isPlaying)
 | |
|             {
 | |
|                 Refresh();
 | |
|                 return;
 | |
|             }
 | |
| 
 | |
| #endif
 | |
| 
 | |
|             if (_queueRefresh)
 | |
|             {
 | |
|                 Refresh();
 | |
|                 _queueRefresh = false;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         protected abstract void Refresh();
 | |
| 
 | |
|         [ContextMenu("Refresh")]
 | |
|         private void DoRefresh()
 | |
|         {
 | |
|             Refresh();
 | |
|         }
 | |
|     }
 | |
| }
 |