Unity5.x中如何动态给对象添加事件

71 篇文章 2 订阅

如果需要给大量相同的游戏对象添加某一个事件,手动操作可能会非常麻烦费体力,通过在Start()方法中动态添加,可以省去不少体力活。

大致的流程为:

(1)       在当前游戏对象上创建EventTrigger对象;

(2)       创建事件触发器的Entry,设置Entry的属性包括事件类型,以及事件响应函数。

(3)       将触发器的Entry添加到事件触发器EventTrigger对象上面。

例如:

protected void Start()

{

EventTrigger trigger = gameObject.AddComponent<EventTrigger>();//在对象上新建EventTrigger

    EventTrigger.Entry hoverEntry = new EventTrigger.Entry();//创建Entry

    hoverEntry.eventID = EventTriggerType.PointerEnter; //设置Entry的类型

    hoverEntry.callback = new EventTrigger.TriggerEvent();

    UnityAction<BaseEventData> hoverCallback = new UnityAction<BaseEventData>(OnHoverCallback); //设置Entry的回调函数

    hoverEntry.callback.AddListener(hoverCallback);

    trigger.triggers.Add(hoverEntry);

    EventTrigger.Entry exitEntry = new EventTrigger.Entry();

    exitEntry.eventID = EventTriggerType.PointerExit;

    exitEntry.callback = new EventTrigger.TriggerEvent();

    UnityAction<BaseEventData> exitCallback = new UnityAction<BaseEventData>(OnExitCallback);

    exitEntry.callback.AddListener(exitCallback);

trigger.triggers.Add(exitEntry);

}

事件处理函数定义:

private void OnHoverCallback(BaseEventData eventData)

    {

    }

另外,如何获取触摸板的点击呢?

Touch touch = Input.GetTouch(0);

if (touch.phase == TouchPhase.Began)

{

OnClick();

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值