您当前的位置: 首页 >  unity

unity工具人

暂无认证

  • 4浏览

    0关注

    205博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Unity 用脚本给EventTrigger添加事件

unity工具人 发布时间:2021-05-29 07:46:32 ,浏览量:4

两种写法
    • 写法一:
    • 写法二:

写法一:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;

public class Trigger : MonoBehaviour
{
    EventTrigger eventTrigger;
    // Start is called before the first frame update
    void Start()
    {
        eventTrigger = GetComponent();

        AddPointerEnterEvent();
        AddPointerExitEvent();
        AddPointerClickEvent();
    }

    void AddPointerEnterEvent()
    {
        EventTrigger.Entry entry = new EventTrigger.Entry();
        entry.eventID = EventTriggerType.PointerEnter;
        entry.callback = new EventTrigger.TriggerEvent();
        UnityEngine.Events.UnityAction callback = new UnityEngine.Events.UnityAction(PointerEnter);
        entry.callback.AddListener(callback);
        eventTrigger.triggers.Add(entry);
        Debug.Log("AddPointerEnterEvent");
    }

    void AddPointerExitEvent()
    {
        EventTrigger.Entry entry = new EventTrigger.Entry();
        entry.eventID = EventTriggerType.PointerExit;
        entry.callback = new EventTrigger.TriggerEvent();
        UnityEngine.Events.UnityAction callback = new UnityEngine.Events.UnityAction(PointerExit);
        entry.callback.AddListener(callback);
        eventTrigger.triggers.Add(entry);
        Debug.Log("AddPointerExitEvent");
    }

    void AddPointerClickEvent()
    {
        EventTrigger.Entry entry = new EventTrigger.Entry();
        entry.eventID = EventTriggerType.PointerClick;
        entry.callback = new EventTrigger.TriggerEvent();
        UnityEngine.Events.UnityAction callback = new UnityEngine.Events.UnityAction(PointerClick);
        entry.callback.AddListener(callback);
        eventTrigger.triggers.Add(entry);
        Debug.Log("AddPointerClickEvent");
    }

    void PointerEnter(BaseEventData baseEventData)
    {
        Debug.Log("enter");
    }

    void PointerExit(BaseEventData baseEventData)
    {
        Debug.Log("exit");
    }

    void PointerClick(BaseEventData baseEventData)
    {
        Debug.Log("click");
    }
}

原文地址:https://www.cnblogs.com/Peng18233754457/p/11813837.html 大佬的博客主页太炫酷了

写法二:

后来的使用过程中我做了一点点改动 像这样:

/// 
///
/// 
/// 需要添加事件的EventTrigger
/// 事件类型
/// 回调函数
void AddPointerEvent(EventTrigger eventTrigger, EventTriggerType eventTriggerType, UnityEngine.Events.UnityAction callback)
{
	EventTrigger.Entry entry = new EventTrigger.Entry();
	entry.eventID = eventTriggerType;
	entry.callback = new EventTrigger.TriggerEvent();
	entry.callback.AddListener(callback);
	eventTrigger.triggers.Add(entry);
	Debug.Log("AddPointerEnterEvent");
}


//这样注册
	AddPointerEvent(eventTrigger, EventTriggerType.PointerEnter, PointerEnter);
	AddPointerEvent(eventTrigger, EventTriggerType.PointerExit, PointerExit);
	AddPointerEvent(eventTrigger, EventTriggerType.PointerClick, PointerClick);

相关组合操作:Unity动态获取和添加组件

关注
打赏
1656671177
查看更多评论
立即登录/注册

微信扫码登录

0.0903s