前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Unity ShaderGraph】| 制作一个 高级流体水球效果

【Unity ShaderGraph】| 制作一个 高级流体水球效果

作者头像
呆呆敲代码的小Y
发布2023-10-28 10:31:57
2850
发布2023-10-28 10:31:57
举报
请添加图片描述
请添加图片描述
前言

【Unity ShaderGraph】| 快速制作一个 流体水球效果

一、效果展示

请添加图片描述
请添加图片描述

资源下载方式: 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 如下:

代码语言:javascript
复制
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即可查看效果:

请添加图片描述
请添加图片描述
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-10-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 【Unity ShaderGraph】| 快速制作一个 流体水球效果
  • 一、效果展示
  • 二、简易流体水球效果
  • 三、进阶流体水球效果
  • 四、应用实例
相关产品与服务
腾讯云服务器利旧
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档