天天看点

Unity UGUI CanvasGroup组件的详解

对于CanvasGroup组件,我们一定要引起高度重视,它很好用的呢。

Unity UGUI CanvasGroup组件的详解

首先创建一个buttonBig,它很大♂,我将它的image里面的颜色alpha调至一半,颜色稍红。添加CanvasGroup组件

然后创建两个小的button。他们都是默认的样子。

之后调整大button,使大Button在小Button的上面。

然后以大Button为父对象,创建一些UGUI的其他物件,像slider,toggle等。

好现在搭建完成,我们开始试验CanvasGroup

Alpha:控制父对象与全部子对象的透明度。

Unity UGUI CanvasGroup组件的详解

可以看到大Button及其子对象全部看不见了。

Interactable:控制父对象与子对象是否可以交互。false则全部失去交互功能。

Unity UGUI CanvasGroup组件的详解

你看看,button组件默认就有这个Interactable属性,我看了一下,UGUI自带的组件大多都有这个属性,除了ScrollView,不过别担心。

Unity UGUI CanvasGroup组件的详解

大Button及其下的子物体全部都失去了交互功能了,包括ScrollView。

###关键问题。

这个Interactable属性只能取消UGUI自带的组件的交互功能,明白了吗。如果我自己写一个具有交互功能的组件,通过CanvasGroup的这个属性是无法统一取消的。明白了吧。

BlocksRaycast:是否阻挡射线检测。

这个我要解释一下,开启的时候,Button会阻挡射线检测。这样你点击大Button,它才会响应点击。你想透过大button点击它下面的小button就不行,因为大button把你点击的射线给阻挡,然后自己响应了。

如果关闭的话,大Button不会阻挡射线,你可以透过大button点击到他下面的小button。但是,大button的交互功能相当于没有了。因为它不阻挡射线,所以它也不会感应到射线,所以它自然也不会响应你的点击。

Ignore Parent Group:是否无视父对象的CanvasGroup组件。如果无视的话,那么父对象的设置就不会影响到你。这个就不多解释了。