Created
October 12, 2016 22:01
-
-
Save miguel12345/43c51da6acf162fc10f5f69c5b24b288 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| using UnityEngine; | |
| using System.Collections; | |
| using UnityEngine.EventSystems; | |
| using UnityEngine.UI; | |
| using UnityEngine.Events; | |
| public static class PointerCallbackExtensions { | |
| static void AddPointerEventCallback(this GameObject obj,EventTriggerType triggerType,UnityAction<BaseEventData> ev) { | |
| var eventTriggerEntry = obj.GetEventTriggerEntry (triggerType); | |
| eventTriggerEntry.callback.AddListener (ev); | |
| } | |
| public static void AddPointerEventCallback(this Graphic graphic,EventTriggerType triggerType,UnityAction<BaseEventData> ev) { | |
| graphic.gameObject.AddPointerEventCallback (triggerType, ev); | |
| } | |
| public static void AddPointerEventCallback(this Renderer renderer,EventTriggerType triggerType,UnityAction<BaseEventData> ev) { | |
| renderer.gameObject.AddPointerEventCallback (triggerType, ev); | |
| } | |
| static EventTrigger.Entry GetEventTriggerEntry(this GameObject obj,EventTriggerType triggerType) { | |
| EventTrigger trigger = obj.GetComponent<EventTrigger> (); | |
| if (trigger == null) | |
| trigger = obj.AddComponent<EventTrigger> (); | |
| var eventTriggerEntry = trigger.triggers.Find (entry => entry.eventID ==triggerType); | |
| if (eventTriggerEntry == null) { | |
| eventTriggerEntry = new EventTrigger.Entry (); | |
| eventTriggerEntry.eventID = triggerType; | |
| trigger.triggers.Add (eventTriggerEntry); | |
| } | |
| return eventTriggerEntry; | |
| } | |
| public static void RemovePointerEventCallback(this Graphic graphic,EventTriggerType triggerType,UnityAction<BaseEventData> ev) { | |
| RemovePointerEventCallback(graphic.gameObject,triggerType,ev); | |
| } | |
| public static void RemovePointerEventCallback(this Renderer renderer,EventTriggerType triggerType,UnityAction<BaseEventData> ev) { | |
| RemovePointerEventCallback(renderer.gameObject,triggerType,ev); | |
| } | |
| static void RemovePointerEventCallback(this GameObject gameObject,EventTriggerType triggerType,UnityAction<BaseEventData> ev) { | |
| var eventTriggerEntry = gameObject.GetEventTriggerEntry (triggerType); | |
| eventTriggerEntry.callback.RemoveListener (ev); | |
| } | |
| public static void RemovePointerEventCallbacks(this Graphic graphic,EventTriggerType triggerType) { | |
| RemovePointerEventCallbacks (graphic.gameObject, triggerType); | |
| } | |
| public static void RemovePointerEventCallbacks(this Renderer renderer,EventTriggerType triggerType) { | |
| RemovePointerEventCallbacks (renderer.gameObject, triggerType); | |
| } | |
| static void RemovePointerEventCallbacks(this GameObject gameObject,EventTriggerType triggerType) { | |
| var eventTriggerEntry = gameObject.GetEventTriggerEntry (triggerType); | |
| eventTriggerEntry.callback.RemoveAllListeners (); | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| using UnityEngine; | |
| using System.Collections; | |
| using UnityEngine.UI; | |
| using UnityEngine.EventSystems; | |
| public class Usage : MonoBehaviour { | |
| public Image Draggable; | |
| void OnEnable() { | |
| Draggable.AddPointerEventCallback (EventTriggerType.Drag, OnDrag); | |
| } | |
| void OnDisable() { | |
| Draggable.RemovePointerEventCallback (EventTriggerType.Drag, OnDrag); | |
| } | |
| void OnDrag(BaseEventData data) { | |
| PointerEventData pointerData = (PointerEventData)data; | |
| var previousPosition = Draggable.transform.position; | |
| var newPosition = Camera.main.ScreenToWorldPoint(pointerData.position); | |
| newPosition.z = previousPosition.z; | |
| Draggable.transform.position = newPosition; | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment