用Unity做水波效果

遇到了需要做动态水波效果的需求,类似下图

1. 最简单最naive的是只用一张水波图

  • 将这个图片挂在一个有mask组件的父节点上,这个父节点可以挂一个圆形的图当做遮罩。注意这个水波图的宽度一定要比圆形的直径长。
  • 用代码控制水波图的左右移动,来做水流波动的效果,进度条的位置通过调整其y轴的大小。
  • 这种方法很容易实现,但明显的缺点是无法很好的调整水波的状态,可能达不到想要的效果

最终效果:

2. 用动画帧做水波效果

  • 用一张包含多个sprite的图片做动画(随便拿了个图),将Texture type 设成Sprite (2D and UI), sprite mode设为multiple
  • 打开sprite editor,选取单个sprite所取的大小,生成多个图片序列
  • 选取图片序列,拖拽到animation中, 调整位置得到想要的动画效果。
  • 和第一个方法一样也是挂在一个有mask组件的父节点上当做遮罩,进度条的位置通过调整其y轴的大小。

 

最终效果:

 

 

 3. 用UV动画,在shader里操作。具体可参考:https://gameinstitute.qq.com/community/detail/123918

 

 参考资料:

  1. https://docs.coronalabs.com/guide/media/spriteAnimation/index.html

__EOF__

本文作者cancantrbl
本文链接https://www.cnblogs.com/cancantrbl/p/14883241.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   cancantrbl  阅读(1162)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示