Unity长按按钮多次升级
- IT业界
- 2025-09-01 10:54:01

方案一 事件接口 using UnityEngine; using UnityEngine.EventSystems; public class Test : MonoBehaviour,IPointerDownHandler,IPointerUpHandler,IPointerExitHandler { private float unitTime = 0.5f;//间隔时间 private bool startClick;//是否在按压按钮 private float recordTime = 0f;//记录时间 private void Update() { if (startClick) { recordTime += Time.deltaTime; if (recordTime >= unitTime) { Debug.Log("升级了"); recordTime = 0f; } } } public void OnPointerDown(PointerEventData eventData) { Debug.Log("按下"); startClick = true; } public void OnPointerUp(PointerEventData eventData) { Debug.Log("松开"); startClick = false; recordTime = 0f; } public void OnPointerExit(PointerEventData eventData) { Debug.Log("离开了"); startClick = false; recordTime = 0f; } } 方案二 EventTrigger using System.Collections.Generic; using UnityEngine; using UnityEngine.Events; using UnityEngine.EventSystems; public class Test : MonoBehaviour { public GameObject target; private float unitTime = 0.5f;//间隔时间 private bool startClick;//是否在按压按钮 private float recordTime = 0f;//记录时间 private void Start() { List<EventTrigger.Entry> entryList = new List<EventTrigger.Entry>(); //按下 entryList.Add(GetNewEntry(EventTriggerType.PointerDown, (data) => { Debug.Log("按下"); startClick = true; })); //松开按钮 entryList.Add(GetNewEntry(EventTriggerType.PointerUp, (data) => { Debug.Log("松开"); startClick = false; recordTime = 0f; })); //离开交互区 entryList.Add(GetNewEntry(EventTriggerType.PointerExit, (data) => { Debug.Log("离开了"); startClick = false; recordTime = 0f; })); EventTrigger trigger = target.AddComponent<EventTrigger> (); trigger.triggers.AddRange(entryList); } private void Update() { if (startClick) { recordTime += Time.deltaTime; if (recordTime >= unitTime) { Debug.Log("升级了"); recordTime = 0f; } } } public EventTrigger.Entry GetNewEntry(EventTriggerType type, UnityAction<BaseEventData> callback) { EventTrigger.Entry entry = new EventTrigger.Entry (); entry.eventID = type; entry.callback.AddListener(callback); return entry; } }
Unity长按按钮多次升级由讯客互联IT业界栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“Unity长按按钮多次升级”