事件接口
将含改代码的脚本挂到UI上,可实现相应效果
第一种写法
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 | using UnityEngine; using UnityEngine.EventSystems; public class Juse : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler,IPointerClickHandler,IPointerDownHandler,IPointerUpHandler { public void OnPointerClick(PointerEventData eventData) { Debug.Log( "Click" ); } public void OnPointerDown(PointerEventData eventData) { Debug.Log( "Down" ); } public void OnPointerUp(PointerEventData eventData) { Debug.Log( "Up" ); } public void OnPointerEnter(PointerEventData eventData) { Debug.Log( "Enter" ); } public void OnPointerExit(PointerEventData eventData) { Debug.Log( "Exit" ); } } |
第二种写法
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 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | using UnityEngine; using UnityEngine.EventSystems; public class Juse : EventTrigger { public override void OnBeginDrag(PointerEventData data) { Debug.Log( "OnBeginDrag called." ); } public override void OnCancel(BaseEventData data) { Debug.Log( "OnCancel called." ); } public override void OnDeselect(BaseEventData data) { Debug.Log( "OnDeselect called." ); } public override void OnDrag(PointerEventData data) { Debug.Log( "OnDrag called." ); } public override void OnDrop(PointerEventData data) { Debug.Log( "OnDrop called." ); } public override void OnEndDrag(PointerEventData data) { Debug.Log( "OnEndDrag called." ); } public override void OnInitializePotentialDrag(PointerEventData data) { Debug.Log( "OnInitializePotentialDrag called." ); } public override void OnMove(AxisEventData data) { Debug.Log( "OnMove called." ); } public override void OnPointerClick(PointerEventData data) { Debug.Log( "OnPointerClick called." ); } public override void OnPointerDown(PointerEventData data) { Debug.Log( "OnPointerDown called." ); } public override void OnPointerEnter(PointerEventData data) { Debug.Log( "OnPointerEnter called." ); } public override void OnPointerExit(PointerEventData data) { Debug.Log( "OnPointerExit called." ); } public override void OnPointerUp(PointerEventData data) { Debug.Log( "OnPointerUp called." ); } public override void OnScroll(PointerEventData data) { Debug.Log( "OnScroll called." ); } public override void OnSelect(BaseEventData data) { Debug.Log( "OnSelect called." ); } public override void OnSubmit(BaseEventData data) { Debug.Log( "OnSubmit called." ); } public override void OnUpdateSelected(BaseEventData data) { Debug.Log( "OnUpdateSelected called." ); } } |
第三种写法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | using UnityEngine; using UnityEngine.EventSystems; public class Juse : EventTrigger { void Start() { EventTrigger trigger = GetComponent<EventTrigger>(); EventTrigger.Entry entry = new EventTrigger.Entry(); entry.eventID = EventTriggerType.PointerDown; entry.callback.AddListener((data) => { OnPointerDownDelegate((PointerEventData)data); }); trigger.triggers.Add(entry); } public void OnPointerDownDelegate(PointerEventData data) { Debug.Log( "OnPointerDownDelegate called." ); } } |
也可以通过添加EventTrigger组件来调用有关函数。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了