封装
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.Events;
public static class AddTriggersListener {
public delegate void MyMehod(BaseEventData pd);
public static void addTriggersListener(GameObject obj, EventTriggerType eventTriggerType, MyMehod myMehod)
{
EventTrigger ET =obj. GetComponent<EventTrigger>();
if (ET == null)
{
ET = obj.AddComponent<EventTrigger>();
}
if (ET.triggers.Count == 0)
{
ET.triggers = new List<EventTrigger.Entry>();
}
UnityAction<BaseEventData> callBack = new UnityAction<BaseEventData>(myMehod);
EventTrigger.Entry entry = new EventTrigger.Entry();
entry.eventID = eventTriggerType;
entry.callback.AddListener(callBack);
ET.triggers.Add(entry);
}
}
调用
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
public class EnvironmentClick : MonoBehaviour
{
private void Awake()
{
AddTriggersListener.addTriggersListener(this.gameObject, EventTriggerType.PointerClick, OnClick);
}
private void Start()
{
}
public void OnClick(BaseEventData data)
{
if (Input.GetMouseButton(1)) return;
if (Input.GetMouseButton(2)) return;
Debug.Log("s");
}
}
本文介绍了一个在Unity中用于简化事件触发监听器添加过程的静态类AddTriggersListener。该类提供了一个公共委托和静态方法,允许用户通过传入GameObject、事件类型和回调方法来轻松地为游戏对象添加事件监听器,特别适用于PointerClick事件。
1082

被折叠的 条评论
为什么被折叠?



