unity3d - 如何在 Unity UI 中打洞?
问题描述
我想为我的游戏制作一个可重复使用的教程系统。我的想法是使用半透明的黑色面板来阻止包括点击在内的所有内容,但在其上切出一个洞(使用自定义变换,例如您想要引导玩家点击的其他图层上的按钮)以揭示背后的内容孔,而且用户的点击也可以通过整个孔与孔后面的任何东西进行交互。
我已经在互联网上搜索了很多小时,但仍然找不到解决方案。那么正确的方法是什么?谢谢!
解决方案
您可以对视觉部分使用遮罩,对交互部分使用画布组。
视觉部分见Unity 官方 UI Mask 教程。
至于交互部分,我不完全确定这是否可行,因为我自己没有做过,但根据 Unity 文档,您应该可以使用Canvas Groups来做到这一点。
将标志设置为 true(标记)的父画布组Block Raycasts
,然后,对于非阻塞区域,使用第二个Block Raycasts
标志设置为 false(未标记)和Ignore Parent Groups
标志设置为 true(标记)的画布组。因此,第二组应该覆盖父组的阻止行为。
推荐阅读
- c# - 如何使用异步调用对 Prism INavigationAware.OnNavigatedTo 进行单元测试
- capl - createGlobalMarker() 在离线模式下不在 Vector CANoe 中创建标记
- python - 在管道中使用 gridsearchCV 时无法克隆对象错误
- python - 无法理解python反转功能
- d3.js - 添加过渡动画打破工具提示鼠标悬停
- javascript - 在 Vuex 中响应式更新状态
- reactjs - MouseEvent 目标类型
- ios - UITextField 崩溃撤消键盘图标
- android - 当 wifi 不可用但蜂窝数据在三星设备上时,ContentResolver requestSync 不会触发 SyncAdapter onPerformSync
- python-3.x - 如何摆脱多余的括号、引号或逗号 Python