Skip to content

Instantly share code, notes, and snippets.

@gegagome
Last active March 5, 2019 20:03
Show Gist options
  • Save gegagome/ed841d8c28ffb4967d8f12b12ca57e6e to your computer and use it in GitHub Desktop.
Save gegagome/ed841d8c28ffb4967d8f12b12ca57e6e to your computer and use it in GitHub Desktop.
Unity - Adding events in C#
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
public class Events : MonoBehaviour/*, IPointerUpHandler, IPointerEnterHandler, IPointerClickHandler*/
{
void Start()
{
EventTrigger myEventTrigger = GetComponent<EventTrigger>(); //you need to have an EventTrigger component attached this gameObject
Debug.Log(myEventTrigger);
myEventTrigger.AddListener(EventTriggerType.PointerClick, onClickListener);
myEventTrigger.AddListener(EventTriggerType.PointerUp, OnPointerUp);
}
public void onClickListener(PointerEventData eventData)
{
Debug.Log("ExtensionMethod");
}
public void EnClickListener()
{
Debug.Log("ExtensionMethod 2");
}
public void OnPointerClick(PointerEventData eventData)
{
Debug.Log("OnPointerClick");
}
public void OnPointerEnter(PointerEventData eventData)
{
Debug.Log("OnPointerEnter on puzzle piece");
}
public void OnPointerUp(PointerEventData eventData)
{
Debug.Log("tapped on puzzle piece");
}
void Update()
{
}
}
using UnityEngine.EventSystems;
using UnityEngine;
public static class ExtensionMethods
{
public static void AddListener(this EventTrigger trigger, EventTriggerType eventType, System.Action<PointerEventData> listener)
{
EventTrigger.Entry entry = new EventTrigger.Entry();
entry.eventID = eventType;
entry.callback.AddListener(data => listener.Invoke((PointerEventData)data));
trigger.triggers.Add(entry);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment