36 lines
		
	
	
		
			904 B
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			36 lines
		
	
	
		
			904 B
		
	
	
	
		
			C#
		
	
	
	
|  | namespace SRDebugger.UI.Other | |||
|  | { | |||
|  |     using SRF; | |||
|  |     using UnityEngine; | |||
|  | 
 | |||
|  |     public class LoadingSpinnerBehaviour : SRMonoBehaviour | |||
|  |     { | |||
|  |         private float _dt; | |||
|  |         public int FrameCount = 12; | |||
|  |         public float SpinDuration = 0.8f; | |||
|  | 
 | |||
|  |         private void Update() | |||
|  |         { | |||
|  |             _dt += Time.unscaledDeltaTime; | |||
|  | 
 | |||
|  |             var localRotation = CachedTransform.localRotation.eulerAngles; | |||
|  |             var r = localRotation.z; | |||
|  | 
 | |||
|  |             var fTime = SpinDuration/FrameCount; | |||
|  |             var hasChanged = false; | |||
|  | 
 | |||
|  |             while (_dt > fTime) | |||
|  |             { | |||
|  |                 r -= 360f/FrameCount; | |||
|  |                 _dt -= fTime; | |||
|  |                 hasChanged = true; | |||
|  |             } | |||
|  | 
 | |||
|  |             if (hasChanged) | |||
|  |             { | |||
|  |                 CachedTransform.localRotation = Quaternion.Euler(localRotation.x, localRotation.y, r); | |||
|  |             } | |||
|  |         } | |||
|  |     } | |||
|  | } |