一般的遮罩做法是在Image的节点前,增加一父节点Mask,然后通过Mask包含Image,就是用父Mask的遮罩Image
可程序的事件总不会那么顺畅的,反正就是不行
结果是锯齿严重:
具体原理不知道
或者可以通过RectMask2D解决
但是我选择了使用Shader,
结果:
代码如下:(需要RawImage才能使用mat + shader)
Shader "Custom/ImageMask"
{
Properties
{
[PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {}
_Mask ("Base (RGB)", 2D) = "white" {}
_Color ("Tint", Color) = (1,1,1,1)
_StencilComp ("Stencil Comparison", Float) = 8
_Stencil ("Stencil ID", Float) = 0
_StencilOp ("Stencil Operation", Float) = 0
_StencilWriteMask ("Stencil Write Mask", Float) = 255
_StencilReadMask ("Stencil Read Mask", Float) = 255
_ColorMask ("Color Mask", Float) = 15
[Toggle(UNITY_UI_ALPHACLIP)] _Use

本文介绍了如何解决Unity中UGUI Mask组件导致的图片遮罩锯齿问题。除了尝试使用RectMask2D,作者选择通过编写自定义Shader来实现平滑遮罩效果,提供了一段具体的Shader代码示例,适用于需要RawImage的情况。
最低0.47元/天 解锁文章
1532

被折叠的 条评论
为什么被折叠?



