封装
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");
}
}