在进行 Unity 3D 的 UI 界面发开时候, 可能会遇到禁用某些控件的 用户交互.
比如: 当前的
角色属性界面已经打开了, 此时用户点击主界面上的技能图标就不能再响应用户的点击事件了.
透明层
以前的做法可能就是在 角色属性界面 背景上添加一个透明层来阻断用户的点击事件.
Canvas Group 组件
另外一个做法, 就是使用 Unity 提供的 Canvas Group 组件:
Canvas Group 组件一共有 4 个属性:
Alpha: 可以用来控制组件的透明度, 其值为0 ~ 1.Interactable: 是否接受用户交互事件, 设置为false的时候, 交互功能就会被禁用.Blocks Raycasts: 如果需要图形射线(GraphicRaycaster)检测. 值为true时, 可将此组件作为一个射线碰撞盒. 但是, 不适用于Physics.Raycast.Ignore Parent Group: 是否响应父级 group 的方法.
因此如果要禁用交互的话, 只需要 Interactable = false 即可.
当然 Blocks Raycasts = false 也可以起到想同的作用.