Unity开发:CanvasGroup控件实现界面暂停功能

本文介绍了如何利用Unity中的CanvasGroup组件来暂停和恢复面板的交互功能。通过调整Alpha值控制透明度,设置Interactable为false禁用交互,并利用BlocksRaycasts阻止射线检测,实现面板的暂停操作。在OnPause方法中设置blocksRaycasts为false,OnResume方法中设置为true,从而实现交互的开启和关闭。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在一个面板中通过触发按钮操作弹出子面板后,点击原面板还会继续生成新的子面板,这时候需要能够让原面板暂停,也就是不响应,可以用到CanvasGroup组件请添加图片描述
Alpha这个选项很多组件都有,用处也是一样的,在美术中,这个叫做Alpha通道的东东是用来控制透明度的,他的值从0到1.0是完全透明,1是完全不透明;
Interactable确认该组件是否接受输入,当他被设置为false时,交互功能将被禁用;
Block Raycasts是否让该组件像collider一样接受射线检测?你需要在依赖于Canvas的图形射线检测者上唤醒射线检测方法。这个不会作用于Physics.Raycast;
Ignore Parent Groups(忽略父级团)是否响应父级group的方法

在控制面板的代码中,加入对Blocks Raycasts的控制就可以实现这个操作

    //面板暂停操作
    public override void OnPause()
    {
        UITool.GetOrAddComponent<CanvasGroup>().blocksRaycasts = false;
    }
    
    //面板继续操作
    public override void OnResume()
    {
        UITool.GetOrAddComponent<CanvasGroup>().blocksRaycasts = true;
    }

参考:[Unity]CanvasGroup

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值