欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Unity Mask 遮罩无效 解决方案

程序员文章站 2022-07-10 18:50:36
Unity Mask 遮罩无效 解决方案前言本人开发的APP有着需要发布到手机、Pico一体机、华为Glass眼镜上的需求,因此项目是一个多合一的工程。由此在制作如文字滑动的效果时,遇到了一个问题,Unity自带的Mask无法实现全平台遮罩。针对这点,进行了探索测试。Unity 开发版本 2018.4.26f1一、Mask 解决方案 尝试Mask方案:使用Unity 自带的Mask + 遮罩图片不能为全透明。该方案由友人提出,在其工程上实现了PC、手机、一体机等多平台的遮罩效果。但...

Unity Mask 遮罩无效 解决方案


前言

本人开发的APP有着需要发布到手机、Pico一体机、华为Glass眼镜上的需求,因此项目是一个多合一的工程。由此在制作如文字滑动的效果时,遇到了一个问题,Unity自带的Mask无法实现全平台遮罩。针对这点,进行了探索测试。

Unity 开发版本 2018.4.26f1


一、Mask 解决方案 尝试

Mask方案:使用Unity 自带的Mask + 遮罩图片不能为全透明。
该方案由友人提出,在其工程上实现了PC、手机、一体机等多平台的遮罩效果。
但是,将该方法用到我的工程上测试,手机端无法遮罩,其它平台有效。

下图:Mask遮罩设置
Unity  Mask 遮罩无效 解决方案

二、Rect Mask 2D 解决方案 尝试

RectMask2D方案:使用Unity 自带的RectMask2D + 遮罩图片。
在上述Mask方案无效的情况下,通过百度寻得的方案。
经过测试,全平台都能够实现遮罩效果
但是,测试过程中,在一体机端发现了一个问题,使用Scroll View进行滑动,被遮罩的部分无法显示。
手机端、PC端正常遮罩无Bug

下图:RectMask2D遮罩设置
Unity  Mask 遮罩无效 解决方案

三、Soft Mask 解决方案 尝试

SoftMask方案:使用SoftMask + 遮罩图片。
遮罩图片Image中的SourceImage, 选择不是Unity自带的UIMask图片之外的其它任意图片。
SoftMask—MaskChannel:选择非Alpha模式
使用UNITY的 Text文本测试,全平台都能够实现遮罩效果
但是,开发使用TextMeshProUGUI,在测试过程中全平台都无遮罩效果,后发现了SoftMask的报错:
Some of children’s shaders are not supported. mask won’t work on these elements,see the documentation for more details about how to a add soft mask support to custom shaders.
仅此推断是TextMeshProUGUI使用的shader无效
后替换SoftMask自带的Shader,实现遮罩效果,且无上述2方案BUG

下图:SoftMask遮罩设置
Unity  Mask 遮罩无效 解决方案
Unity  Mask 遮罩无效 解决方案

本文地址:https://blog.csdn.net/sakuya_miku/article/details/108852198

相关标签: unity