首页 > 解决方案 > 如何在 Unity UI 中打洞?

问题描述

我想为我的游戏制作一个可重复使用的教程系统。我的想法是使用半透明的黑色面板来阻止包括点击在内的所有内容,但在其上切出一个洞(使用自定义变换,例如您想要引导玩家点击的其他图层上的按钮)以揭示背后的内容孔,而且用户的点击也可以通过整个孔与孔后面的任何东西进行交互。

我已经在互联网上搜索了很多小时,但仍然找不到解决方案。那么正确的方法是什么?谢谢!

标签: unity3d

解决方案


您可以对视觉部分使用遮罩,对交互部分使用画布组。


视觉部分见Unity 官方 UI Mask 教程


至于交互部分,我不完全确定这是否可行,因为我自己没有做过,但根据 Unity 文档,您应该可以使用Canvas Groups来做到这一点。

将标志设置为 true(标记)的父画布组Block Raycasts,然后,对于非阻塞区域,使用第二个Block Raycasts标志设置为 false(未标记)和Ignore Parent Groups标志设置为 true(标记)的画布组。因此,第二组应该覆盖父组的阻止行为。


推荐阅读