public static CanvasGroup FindCanvasGroup(this UIBehaviour bvr) { var cv = bvr.GetComponentInParent <CanvasGroup>(); while (cv != null) { if (cv.ignoreParentGroups) { break; } var parent = cv.transform.parent; var top = parent ? parent.GetComponentInParent <CanvasGroup>() : null; if (top) { cv = top; } else { break; } } return(cv); }
public static void EventTrigger(this UIBehaviour ui, EventTriggerType eventType, UnityAction <BaseEventData> action) { EventTrigger trigger = ui.GetComponentInParent <EventTrigger>(); if (trigger == null) { trigger = ui.gameObject.AddComponent <EventTrigger>(); } EventTrigger.Entry entry = new EventTrigger.Entry(); entry.eventID = eventType; entry.callback.AddListener(action); trigger.triggers.Add(entry); }