unity3d - 如何使用图像组件在 Unity 中创建遮罩?
问题描述
我正在为 Unity 游戏设计一个教程,但我被困在一个看似微不足道的问题上。对于教程中的每一步,我都会通过隐藏屏幕上的所有内容来指导用户,除了他们需要按下的按钮。我的游戏层次结构看起来像这样。
Button Canvas
Select_Me_Button
Dont_Select_Me_Button
Tutorial Canvas
Mask Group 1
Left Border Mask
Right Border Mask
Up Border Mask
Down Border Mask
Mask Group 2 ...
GameObjectTutorialCanvas
有一个 Canvas 组件,其排序顺序高于ButtonCanvas
. 我为所有内容添加了GraphicRaycaster
Component,并将TutorialCanvas 设置为 None。但是,即使 TutorialCanvas 在 Button Canvas 上呈现,我仍然可以单击不应单击的蒙版和触发按钮。我可以通过将用作掩码的图像组件添加到父对象并属于来阻止点击,但这是不可取的,因为我需要对图像组件进行分组以创建掩码,而游戏对象只能接受 1 个图像组件。Blocking Mask
Blocking Objects
Mask Group 1
Mask Group 2
TutorialCanvas
我很难想象这有多难。我只需要一个带遮罩的画布来阻止点击到它后面的画布。
解决方案
感谢 Unity 论坛的帮助,我通过创建一组蒙版并通过脚本中的 RectTransform 的 anchoredPosition 组件定位它们来解决了这个问题。
推荐阅读
- bootstrap-4 - Bootstrap 4 在 d-flex 中使用卡片类
- php - 当我的循环中没有图像时设置默认图像
- ios - 使用大标题时 iOS 11 滚动到顶部无法正常工作
- docker - kubeadm init 因 docker 版本不正确而失败
- ruby - rbenv,捆绑器,独角兽问题
- c# - 在 C# 中更改 xml 值
- calendar - 如何在 odoo 10 的 many2one 字段中打开日历视图
- angular - 角度 4 中 textarea 的自动完成功能
- javascript - Webpack 4 - 输出没有在正确的位置创建 bundle.js
- php - PHP 中的 $_POST 方法后加密数据不会解密