Unity Canvas 在World Space 模式下UI按钮无法点击的问题

1.Canvas 中 Render Mode 为 WorldSpace模式时的事件相机没有设置 (这是把事件相机拖拽放在 Event Camera 中即可)
2.关于鼠标悬浮事件 直接上代码:
这里的triggerArea可以时Button或Image等

  if (triggerArea.GetComponent<EventTrigger>() == null)
            triggerArea.gameObject.AddComponent<EventTrigger>();
        triggerArea.GetComponent<EventTrigger>().triggers = new List<EventTrigger.Entry>();


        // 添加到委托列表
        triggerArea.GetComponent<EventTrigger>().triggers.Add(CommonBind(EventTriggerType.PointerEnter, OnHover));
        triggerArea.GetComponent<EventTrigger>().triggers.Add(CommonBind(EventTriggerType.PointerExit, OnUnHover));
        tipPanel.SetActive(false);
 EventTrigger.Entry CommonBind(EventTriggerType type, UnityAction<BaseEventData> call)
    {
        // 注册事件
        EventTrigger.Entry enter = new EventTrigger.Entry();
        // 实例化eventID
        enter.eventID = type;
        // 实例化callback
        enter.callback = new EventTrigger.TriggerEvent();
        // 设置事件
        UnityAction<BaseEventData> pointerEnterCB = new UnityAction<BaseEventData>(call);
        // 绑定事件
        enter.callback.AddListener(pointerEnterCB);
        return enter;
    }
  void OnHover(BaseEventData eventData)
    {
        Debug.Log("悬浮在UI上");
        tipPanel.SetActive(true);
    }
    void OnUnHover(BaseEventData eventData)
    {
        Debug.Log("Unhover me");
        tipPanel.SetActive(false);
    }
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值