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