赞
踩
高级流体水球
,可以直接拿到项目中使用。资源下载方式: ShaderGraph效果资源整合文件【其中内容持续更新】
首先在Project下右键 Creat -> Shader Graph -> URP -> Lit Shader Graph
创建一个Unlit Shader Graph
。
双击打开该ShaderGraph,连接节点如下:
通过调节Slider可以控制水球大小。
在上面的水球效果基础上再加一层用于显示水花效果,连接节点如下所示:
通过调节定义的外部Float节点progress可以调节水球的大小饱和度。
创建完上述ShaderGraph之后在Project下创建一个材质球Material,然后将该ShaderGraph拖到该材质球上即可应用。
快捷方法是在Project下鼠标选中该ShaderGraph,然后右键Creat创建一个Material,这样我们创建出来的材质球,就自动使用这个Shader了。
然后我们在场景场景中新建一个Image和Text组件进行测试,编写一个测试脚本LoadingBallDemo.cs
如下:
using UnityEngine; using UnityEngine.UI; public class LoadingBallDemo : MonoBehaviour { [Range(0, 1)] public float progress = 0.5f; public Material mat; public Text progressText; private int propertyProgressID; void Start() { propertyProgressID = Shader.PropertyToID("progress"); } void Update() { progress += 0.001f; mat.SetFloat(propertyProgressID, progress); progressText.text = $"{Mathf.Floor(progress * 100)}%"; if (progress >= 1.01f) { progress = 0f; } } }
将脚本挂载到场景的Image组件中,并将刚才创建的材质球和Text组件拖到脚本中,如下图所示:
需要注意的是要将控制水球进度的Float数值节点改为Slider才可以,然后将Name和Reference改成progress,这个名字会在代码中读取使用的,如果场景中的Image图片没有正常显示那就随便找一张图片赋值到Image中进行测试。
此时运行Unity即可查看效果:
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。