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