在一个面板中通过触发按钮操作弹出子面板后,点击原面板还会继续生成新的子面板,这时候需要能够让原面板暂停,也就是不响应,可以用到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
|