alexsosnovskiy

Unity UI Extension: Set OnClick handler for GameObject

Feb 16th, 2016
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 0.67 KB | None | 0 0
  1. using System;
  2. using UnityEngine;
  3. using UnityEngine.EventSystems;
  4.  
  5. //Example:
  6. // GameObject _btnPlay; // set anywhere
  7. // ...
  8. // _btnPlay.SetOnClick((sender)=>{ Debug.Log(sender.name); });
  9. //
  10. public static class UnityUIExtensions
  11. {
  12.     public static void SetOnClick(this GameObject go, Action<GameObject> handler)
  13.     {
  14.         var eventHandler = go.GetComponent<EventTrigger>();
  15.  
  16.         if(eventHandler == null)
  17.             eventHandler = go.AddComponent<EventTrigger>();
  18.  
  19.         EventTrigger.Entry entry = new EventTrigger.Entry();
  20.         entry.eventID = EventTriggerType.PointerClick;
  21.         entry.callback.AddListener( (eventData) => { handler(go); } );
  22.         eventHandler.triggers.Add(entry);
  23.     }
  24. }
Advertisement
Add Comment
Please, Sign In to add comment