Unity3D中灵活绘制进度条
有时我们需要在Unity3D中绘制进度条,如:
或
如果使用4.6版本以下的unity绘制环形的进度条可能需要费点劲。我搜到的大多数方法都是用NGUI插件,但有时只是为了简单的画一个环形UI,使用NGUI反而还增加了学习成本。有一个利用CutOut材质的方法能够利用alpha值,灵活的控制进度条中需要显示的部分,以环形进度条为例,方法如下:
1、在PS中制作一张如下所示的图,RGB为进度条想要的颜色,alpha值从5-250环形渐变(如果从0-255,在进度为0%或100%时会显示异常,这与CutOut材质的特性有关)
2、新建材质 选择Transparent Cutout
3、设置纹理
4、将导入的纹理拽入材质
5、新建Quad
6、选择第2步创建的材质
7、创建正交相机,并将深度置为最前
8、将它们拖到荒无人烟的地方(这是UI,7、8两步确保它是在场景的最前面,且不会出现在才3D场景中)
9、调整Alpha cutoff观看效果
10、若想做出反方向的效果,则需要在做图的时候勾选反向
11、我们的目标是:写脚本控制alpha cutoff的值
12、代码如下,最核心的一句已经框起来了
到此为止,转圈的进度条/能量条的方法阐述完毕,核心思想是利用CutOut材质控制alpha值控制进度条的显示。在CutOut材质中,当alpha值高于设置的"alpha cutoff"时,完全不透明;低于设置的"alpha cutoff"时,完全透明。利用CutOut材质的这种特性,通过制作合适的渐变纹理,可以实现各种各样的进度条,美中不足的是抗锯齿能力不太好。
在这篇博客写完后,我觉得CutOut材质不能有半透明效果,不太合理,于是乎搞了个shader稍微改进了下,你可以在这里下载本文改进后的资源。至于博客中的截图嘛……都差不多,懒得更新了,需要的童鞋看看代码就明白了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
2014-04-23 UML类图几种关系的总结