using UnityEngine; using UnityEngine.UI; using UnityEngine.Events; using System.Collections; public static class ExtensionButton { public static void SetButtonEvent(this Button button, UnityAction onClick) { button.onClick = new Button.ButtonClickedEvent(); button.onClick.AddListener(onClick); } public static void AddButtonEvent(this Button button, UnityAction onClick) { button.onClick.AddListener(onClick); } public static void PushButtonEvent(this Button button, UnityAction onClick) { Button.ButtonClickedEvent click = button.onClick; button.onClick = new Button.ButtonClickedEvent(); button.onClick.AddListener(onClick); button.onClick.AddListener(click.Invoke); } public static void AddButtonEventOnetime(this Button button, UnityAction onClick) { onClick += () => { button.onClick.RemoveListener(onClick); }; button.onClick.AddListener(onClick); } public static void PushButtonEventOnetime(this Button button, UnityAction onClick) { onClick += () => { button.onClick.RemoveListener(onClick); }; Button.ButtonClickedEvent click = button.onClick; button.onClick = new Button.ButtonClickedEvent(); button.onClick.AddListener(onClick); button.onClick.AddListener(click.Invoke); } }