유니티 Eventsystems.eventTrigger 사용 예시
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.EventSystems; public class AttachmentScrollView : MonoBehaviour { [SerializeField] DataContainer data; [SerializeField] AttachmentImageGroup imgGroup; [SerializeField] Button none; [HideInInspector]public Image img; public Image testImg; AttachmentButtonGroup group; private void Awake() { group = GetComponentInChildren<AttachmentButtonGroup>(); } public void Initilize(AttachmentType type) { for(int i = 0; i < imgGroup.images.Length; i++) { if(imgGroup.images[i].type == type) { img = imgGroup.images[i].img; } } group.OnChange(data.GetData(type), img); var entryEnter = entryMaker(EventTriggerType.PointerEnter, OnPointerEnter); var entryExit = entryMaker(EventTriggerType.PointerExit, OnPointerExit); var entryClick = entryMaker(EventTriggerType.PointerClick, OnPointerClick); none.GetComponent<EventTrigger>().triggers.Add(entryEnter); none.GetComponent<EventTrigger>().triggers.Add(entryExit); none.GetComponent<EventTrigger>().triggers.Add(entryClick); } EventTrigger.Entry entryMaker(EventTriggerType type,System.Action<PointerEventData> act) { EventTrigger.Entry newEntry = new EventTrigger.Entry(); newEntry.eventID = type; newEntry.callback.AddListener((data) => { act.Invoke((PointerEventData)data); }); return newEntry; } void OnPointerEnter(PointerEventData data) { if(data != null) { img.enabled = false; testImg.enabled = false; } } void OnPointerExit(PointerEventData data) { if(data != null) { img.enabled = true; testImg.enabled = false; } } void OnPointerClick(PointerEventData data) { if(data != null) { img.color = Color.clear; } } } | cs |
유니티공식문서 링크
https://docs.unity3d.com/kr/530/ScriptReference/EventSystems.EventTrigger.html
댓글
댓글 쓰기