在一个面板中通过触发按钮操作弹出子面板后,点击原面板还会继续生成新的子面板,这时候需要能够让原面板暂停,也就是不响应,可以用到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组件来暂停和恢复面板的交互功能。通过调整Alpha值控制透明度,设置Interactable为false禁用交互,并利用BlocksRaycasts阻止射线检测,实现面板的暂停操作。在OnPause方法中设置blocksRaycasts为false,OnResume方法中设置为true,从而实现交互的开启和关闭。
1162

被折叠的 条评论
为什么被折叠?



