日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

EventTrigger接管所有事件导致其他事件无法触发

發布時間:2024/9/30 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 EventTrigger接管所有事件导致其他事件无法触发 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

解決:

?

using UnityEngine;

using System.Collections;

using UnityEngine.EventSystems;

public class EventTriggerListener : EventTrigger

{

public delegate void VoidDelegate(GameObject go);

public VoidDelegate onClick;

public VoidDelegate onDown;

public VoidDelegate onEnter;

public VoidDelegate onExit;

public VoidDelegate onUp;

public VoidDelegate onSelect;

public VoidDelegate onUpdateSelect;

?

static public EventTriggerListener Get(GameObject go)

{

EventTriggerListener listener = go.GetComponent<EventTriggerListener>();

if (listener == null) listener = go.AddComponent<EventTriggerListener>();

return listener;

}

public override void OnPointerClick(PointerEventData eventData)

{

base.OnPointerClick(eventData);

if (onClick != null) onClick(gameObject);

}

public override void OnPointerDown(PointerEventData eventData)

{

base.OnPointerDown(eventData);

if (onDown != null) onDown(gameObject);

}

public override void OnPointerEnter(PointerEventData eventData)

{

base.OnPointerEnter(eventData);

if (onEnter != null) onEnter(gameObject);

}

public override void OnPointerExit(PointerEventData eventData)

{

base.OnPointerExit(eventData);

if (onExit != null) onExit(gameObject);

}

public override void OnPointerUp(PointerEventData eventData)

{

base.OnPointerUp(eventData);

if (onUp != null) onUp(gameObject);

}

public override void OnSelect(BaseEventData eventData)

{

base.OnSelect(eventData);

if (onSelect != null) onSelect(gameObject);

}

public override void OnUpdateSelected(BaseEventData eventData)

{

base.OnUpdateSelected(eventData);

if (onUpdateSelect != null) onUpdateSelect(gameObject);

}

}

?

?

?

下面是以防自己忘記調用準備的。

?

?

using System;

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

using UnityEngine.EventSystems;

public class UIPanel : MonoBehaviour {

?

????// Use this for initialization

????void Start () {

?

EventTriggerListener.Get(GameObject.Find("RawImage")).onClick = onclicked;

EventTriggerListener.Get(GameObject.Find("Scroll View")).onClick = OnClick;

}

?

private void OnClick(GameObject go)

{

print(122);

}

?

private void onclicked(GameObject go)

{

print(111);

}

// Update is called once per frame

void Update () {

????????

????}

}

總結

以上是生活随笔為你收集整理的EventTrigger接管所有事件导致其他事件无法触发的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。