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(); | |||
|  |         } | |||
|  |     } | |||
|  | } |