53 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			53 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | namespace SRDebugger.UI.Controls.Data | |||
|  | { | |||
|  |     using System; | |||
|  |     using SRF; | |||
|  |     using UnityEngine; | |||
|  |     using UnityEngine.UI; | |||
|  | 
 | |||
|  |     public class ActionControl : OptionsControlBase | |||
|  |     { | |||
|  |         private SRF.Helpers.MethodReference _method; | |||
|  | 
 | |||
|  |         [RequiredField] public UnityEngine.UI.Button Button; | |||
|  | 
 | |||
|  |         [RequiredField] public Text Title; | |||
|  | 
 | |||
|  |         public SRF.Helpers.MethodReference Method | |||
|  |         { | |||
|  |             get { return _method; } | |||
|  |         } | |||
|  | 
 | |||
|  |         protected override void Start() | |||
|  |         { | |||
|  |             base.Start(); | |||
|  |             Button.onClick.AddListener(ButtonOnClick); | |||
|  |         } | |||
|  | 
 | |||
|  |         private void ButtonOnClick() | |||
|  |         { | |||
|  |             if (_method == null) | |||
|  |             { | |||
|  |                 Debug.LogWarning("[SRDebugger.Options] No method set for action control", this); | |||
|  |                 return; | |||
|  |             } | |||
|  | 
 | |||
|  |             try | |||
|  |             { | |||
|  |                 _method.Invoke(null); | |||
|  |             } | |||
|  |             catch (Exception e) | |||
|  |             { | |||
|  |                 Debug.LogError("[SRDebugger] Exception thrown while executing action."); | |||
|  |                 Debug.LogException(e); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         public void SetMethod(string methodName, SRF.Helpers.MethodReference method) | |||
|  |         { | |||
|  |             _method = method; | |||
|  |             Title.text = methodName; | |||
|  |         } | |||
|  |     } | |||
|  | } |