代码改变世界

如何在 Unity3D 中实现圆角效果?

2025-09-09 13:39  北桥苏  阅读(11)  评论(0)    收藏  举报

一、前言

有时候在 Unity3D 中,要实现一些组件的圆角效果,比如进度条,不像普通按钮是静态不动的,可以直接将图片做成圆角。但是进度条是有那种色块流动的效果,如果不做处理,里面的色块会溢出四个角落。

 

二、实现前提

1. 须使用 Image 的 UI 元素。

2. 父层 Image 元素须遮罩组件。

3. 父层 Image 元素图片须有圆角 png 图。

 

三、操作过程

1. 在场景中创建一个 Image 的 UI 元素,图片是黑色有圆角的 png 图片。

f68dd41082c7a1ef3a5c50ed8e578339_up-1f572a98f750038169ea8bfd4f25bb730bc

 

2. 在该 Image 中添加 Mask 组件(遮罩)。

59934ac5b6051cd69360745c1a79e4f9_up-87e19cf2d1e34552ed7573d5154af812f4c

 

3. 在该 Image 下添加一个新的 Image 元素,Source Image 选择一个其他颜色图。

c990130a0678b7d27f2ccac40714bcd8_up-0fd24617362b0369555c928182ae1d70520

 

4. 对子级 Image 的 Transform 进行上下拖动,填充住父的遮罩就可以看到子级的元素也有圆角。

 

四、写在后面

以上的操作都是在 Unity3D 2020.3 中实现,除了用遮罩的方式实现圆角效果外,还可以用 Shader,在效果上还没有锯齿,弧度更丝滑。后面有时间我再更新,以及如何在 Unity3D 中实现无缝循环的帧动画效果。