Unity : WorldSpace下的UI(image,Button等)无法点击问题

1 项目基本情况介绍

在本项目中一共有3个Canvas(画布)

第一个Canvas是在Screen Space - Overlay 中的image,带有button控件(如图1.1所示)

第二个Canvas也是在Screen Space - Overlay 中的image,此image会跟着鼠标移动,可以理解为鼠标光标(如图1.2所示)

第三个Canvas是在World Space下的image,带有button控件(如图1.3所示)

图1.1图1.2图1.3
图1.1图1.2图1.3

本项目将一段代码(changeMenuColor.cs),并将此代码赋予给了一个GameObject。

之后再将此GameObject赋予了图1.1图1.3中Button组件中的OnClick()函数中,如图1.4所示。

图1.4
图1.4

changeMenuColor.cs的代码如下所示:

//changeMenuColor.cs
//点击按钮时,输出“点击按钮”
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class changeMenuColor : MonoBehaviour
{
    public void Click()
    {
        print("点击按钮");
    }
}

2 问题简述

在进行代码测试时,我们发现图1.1中的image点击后会在Console输出“点击按钮”

图1.3中的image在被点击后并没有输出“点击按钮”

这说明图1.1中的image被点击了,而图1.3中的image并没有被检测到点击。

3 解决方案

我对比了图1.1图1.2图1.3中的Canvas设置,如图3.1图3.2图3.3所示。

发现他们的Sort Order都为0

这意味着如果两个图片重叠时,位于后面的图片将无法检测到点击。

就如本项目中,鼠标光标(图1.2)会随着鼠标移动,当鼠标点击图1.3的图片时,图1.2图1.3的图片会产生重叠现象,所以图1.3的image就可能无法检测到点击事件

图3.1图3.2图3.3
图3.1图3.2图3.3

所以,我将鼠标光标(图1.2)所在的Canvas的Sort Order改为1(如图3.4),改变其渲染次序,即可解决问题。

图3.4

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值