107 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			107 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C#
		
	
	
	
| namespace SRDebugger.UI.Other
 | |
| {
 | |
|     using SRF;
 | |
|     using UnityEngine;
 | |
| 
 | |
|     /// <summary>
 | |
|     /// Handles enabling/disabling handle objects for different anchoring modes
 | |
|     /// </summary>
 | |
|     public class HandleManager : SRMonoBehaviour
 | |
|     {
 | |
|         private bool _hasSet;
 | |
|         public GameObject BottomHandle;
 | |
|         public GameObject BottomLeftHandle;
 | |
|         public GameObject BottomRightHandle;
 | |
|         public PinAlignment DefaultAlignment;
 | |
|         public GameObject LeftHandle;
 | |
|         public GameObject RightHandle;
 | |
|         public GameObject TopHandle;
 | |
|         public GameObject TopLeftHandle;
 | |
|         public GameObject TopRightHandle;
 | |
| 
 | |
|         private void Start()
 | |
|         {
 | |
|             if (!_hasSet)
 | |
|             {
 | |
|                 SetAlignment(DefaultAlignment);
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         public void SetAlignment(PinAlignment alignment)
 | |
|         {
 | |
|             _hasSet = true;
 | |
| 
 | |
|             switch (alignment)
 | |
|             {
 | |
|                 case PinAlignment.TopLeft:
 | |
|                 case PinAlignment.TopRight:
 | |
|                     SetActive(BottomHandle, true);
 | |
|                     SetActive(TopHandle, false);
 | |
|                     SetActive(TopLeftHandle, false);
 | |
|                     SetActive(TopRightHandle, false);
 | |
|                     break;
 | |
| 
 | |
|                 case PinAlignment.BottomLeft:
 | |
|                 case PinAlignment.BottomRight:
 | |
|                     SetActive(BottomHandle, false);
 | |
|                     SetActive(TopHandle, true);
 | |
|                     SetActive(BottomLeftHandle, false);
 | |
|                     SetActive(BottomRightHandle, false);
 | |
|                     break;
 | |
|             }
 | |
| 
 | |
|             switch (alignment)
 | |
|             {
 | |
|                 case PinAlignment.TopLeft:
 | |
|                 case PinAlignment.BottomLeft:
 | |
|                     SetActive(LeftHandle, false);
 | |
|                     SetActive(RightHandle, true);
 | |
|                     SetActive(TopLeftHandle, false);
 | |
|                     SetActive(BottomLeftHandle, false);
 | |
|                     break;
 | |
| 
 | |
|                 case PinAlignment.TopRight:
 | |
|                 case PinAlignment.BottomRight:
 | |
|                     SetActive(LeftHandle, true);
 | |
|                     SetActive(RightHandle, false);
 | |
|                     SetActive(TopRightHandle, false);
 | |
|                     SetActive(BottomRightHandle, false);
 | |
|                     break;
 | |
|             }
 | |
| 
 | |
|             switch (alignment)
 | |
|             {
 | |
|                 case PinAlignment.TopLeft:
 | |
|                     SetActive(BottomLeftHandle, false);
 | |
|                     SetActive(BottomRightHandle, true);
 | |
|                     break;
 | |
| 
 | |
|                 case PinAlignment.TopRight:
 | |
|                     SetActive(BottomLeftHandle, true);
 | |
|                     SetActive(BottomRightHandle, false);
 | |
|                     break;
 | |
| 
 | |
|                 case PinAlignment.BottomLeft:
 | |
|                     SetActive(TopLeftHandle, false);
 | |
|                     SetActive(TopRightHandle, true);
 | |
|                     break;
 | |
| 
 | |
|                 case PinAlignment.BottomRight:
 | |
|                     SetActive(TopLeftHandle, true);
 | |
|                     SetActive(TopRightHandle, false);
 | |
|                     break;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         private void SetActive(GameObject obj, bool active)
 | |
|         {
 | |
|             if (obj == null)
 | |
|             {
 | |
|                 return;
 | |
|             }
 | |
| 
 | |
|             obj.SetActive(active);
 | |
|         }
 | |
|     }
 | |
| }
 |