关于学习CanvasGroup的总结及应用

1、关于CanvasGroup的的学习

Canvas Group可以用来控制一组不需要个别控制的UI元素的某些方面,CanvasGroup的属性会影响他所有children的GameObject
img
Canvas Group下各功能详解:
  • Alpha:这个选项很多组件都有,用处也是一样的,在美术中,这个叫做Alpha通道的东东是用来控制透明度的,他的值从0到1.0是完全透明,1是完全不透明;
  • Interactable确认该组件是否接受输入,当他被设置为false时,交互功能将被禁用;
  • Block Raycasts是否让该组件像collider一样接受射线检测?你需要在依赖于Canvas的图形射线检测者上唤醒射线检测方法。这个不会作用于Physics.Raycast;
  • Ignore Parent Groups(忽略父级团)是否响应父级group的方法
Canvas Group的应用场景:
  • 在窗口的GameObject上添加一个CanvasGroup,通过控制它的Alpha值来淡入或淡出整个窗口;
  • 通过给父级GameObject添加一个CanvasGroup并设置它的Interactable值为false来制作一整套没有交互(灰色)的控制;
  • 通过将元素或元素的一个父级添加CanvasGroup并设置BlockRaycasts值为false来制作一个或多个不阻止鼠标事件的UI元素
结合后面两点或者1,3点,都可以实现很牛叉的功能
比如说游戏里某些情况某个按钮(或者其他UI)是不能点的,而另外一些情况可以点,这样就可以通过动态改变这个组件的BlocksRaycasts值以及Interactable来实现
再比如说游戏里点击某个按钮要让这个按钮不可点并逐渐消失掉,当然啦,也可以让别的东西消失啦,这就可以通过改变alpha值来实现

2、针对CanvasGroup的应用

a、楼主自己做了一个关于让UI组件忽明忽暗的小例子,类似呼吸灯的功能。功能很简单,大神勿喷。
复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CanvasGroupTest : MonoBehaviour {

    float time = 1;
    bool isShow = true;
    CanvasGroup canvasGroup;
    // Use this for initialization
    void Start () {
        canvasGroup = transform.GetComponent<CanvasGroup>();
        canvasGroup.alpha = 1.0f;
    } 
    // Update is called once per frame
    void Update () {
        if (isShow)
        {
            canvasGroup.alpha = canvasGroup.alpha - 0.005f;
            if (canvasGroup.alpha == 0)
            {
                isShow = false;
            }
        }
        else
        {
            canvasGroup.alpha = canvasGroup.alpha + 0.005f;
            if (canvasGroup.alpha == 1)
            {
                isShow = true;
            }
        }
    }
}
复制代码

 b、针对Ignore Parent Groups的测试

  1. 在Canvas上添加CanvasGroup组件
  2. 在Canvas下添加两个Button,并在其中一个button上添加CanvasGroup组件。
  3. 将Canvas中的CanvasGroup组件上的Interactable选项勾选上,Canvas上及其子物体无交互功能。
  4. 将添加CanvasGroup组件的button中的Ignore Parent Groups选项勾选上。
  5. 编写buttontest脚本用于测试button的交互功能。
  6. 运行可发现,添加CanvasGroup组件并勾选Ignore Parent Groups选项的button依旧可以进行click操作。未添加CanvasGroup的button则不能进行点击操作。

demo地址:链接:https://pan.baidu.com/s/1qXDBeaC%20 密码:kmu2(不定时清理)

原文地址:https://i.cnblogs.com/EditPosts.aspx?postid=7920852

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值