CCTV 上图原图是正方形的白图,用于遮罩的图是圆形的,宽度50的时候显示范围缩小,变成0的时候去没有隐藏 RenderSprite的源码_maskNative和_mask方法里只判断了宽高大于0的情况,小于等于0的时候却没清空原来绘制的图像
layabox 你反馈的问题没能重现。应该是你用错了,如果你能重现,需要上传demo,看一下你怎么用的。不要只描述现象。另外,引擎那里就是那样的,不是BUG当IDE里,哪怕你是设置为0,还是故意保留了一个像素。因为,遮罩是消耗性能的,不能随便用。如果为0的需求,说明你不想让那个图看到,那为什么要设置遮罩?直接让这个图不渲染不好吗?所以,遮罩的需求就是不能为0,必须大于0。
layabox 看到demo了,也理解你的需求了。这个我们抽空看一下。不过进度条,不是你这样用的。我们明明提供了进度条组件,为什么不直接用进度条组件呢?用你的资源,帮你写了一个进度条的demo,你自己看一下,进度条组件是怎么用的吧。没必要用遮罩来实现。 MaskBug.zip0B
CCTV layabox @layabox:你是用了九宫格的重复填充参数,其实相当于是调整UV对吧?!所以右边是被垂直裁掉... 美术出的进度条如果是两侧圆角的... 进度小于1的时候... 右侧就是一个直角的截断... 遮罩就能保留圆角...
layabox 先结个帖子。遮罩节点,本来就是为了遮住目标节点,只显示遮罩节点的可见部分而设计,所以遮罩节点不应该为0,否则渲染逻辑跑不通。当然,您提的需求,结合示例,我们也能理解。所以功能也进行了优化,支持了遮罩节点宽高为0,等待3.0正式版即可。当前有两种方式,也可以满足您的需求。第一,可以将遮罩节点的宽高设置为1像素,可达到您不想看到遮挡目标的目的。第二,您示例中的进度条需求,可采用进度条组件来实现。 最后感谢反馈,可以关注我们后续的版本更新日志。
layabox layabox @CCTV:不要说如果,你示例里给的那个和圆角的用法不一样,圆角有圆角的用法,那个进度条组件,适合于各种进度条,从来没说不能用于圆角的,只是你不会用,不是不能满足,你需要好好研究一下
layabox layabox @CCTV:你创建一个2D示例项目,加载页用的就是你示例给的那种。UI Demo里的UI基础使用里的进度相关,也有圆角的用法,建议你先研究研究理解一下引擎的组件,先不要带着其它工具先入为主的使用习惯