Unity笔记(7):Shader【着色器】

发布于:2023-01-09 ⋅ 阅读:(586) ⋅ 点赞:(0)

SSS笔记:shader、shake、shoot

前篇回顾:

角色的动画与移动

Unity笔记(5):制作[2D]角色连帧图动画_代码骑士的博客-CSDN博客

1、下载组件

2、创建管线资源

 点击左侧小加号

 创建

 删除管线渲染器(因为默认生成的是3D的) 

新建2D渲染器

 将渲染器拖入管线资源渲染列表栏中

 打开编辑,项目设置

选择graphics,将管线资源拖入

3、创建一个shader graph 在shader文件右键,创建材质

 将材质拖给角色

 

新建一个2DTexture改名为MainTex 将maintex结点拖入空白处,创建新的结点sampleTexture2D

 连接结点

 

 

 点击结点,选择渲染图片,点击参考图选择Quad

保存

 

返回界面看到图片发生变化

 

右键添加sample noise结点

 

再添加combine结点

 

再创建新结点multiply

 

 连接

 

 

 参考图,可以看到噪声已经加到上面了 

 新建结点step

连接

 

修改参数可以看到如下变化

 

 添加变量取名fade

拖出并连接

 保存,进入场景可以看到角色在不断变化

 修改材质上面的参数,图片也会发生变化

 

将mode改为slider,增加一个滑轮

 

 界面

增加节点position

 

space改为object

 

 连接

增加一个scale变量(float)

 

默认值改为40,拖出并连接

 目前的节点连接图

目前所做的一切都是对材质的着色和渲染

 新建结点

 

在拖出一个fade创建新结点substract

连接

 

新建结点substract

 连接

再创建新结点add

 

连接

 

新建结点multiply

连接

 

 新建结点multiply、color

 连接

 可以看到,结点的规律:从右向右数量依次递减,很像树形结构,并依次做加法计算。

右键颜色结点并点击成为参数

点击color参数修改模式为HDR

 

可以调节颜色亮度

  

 材质栏也可以修改炫光

 点击相机,勾选

点击管线资源勾选hdr

 

添加volume组件

 

点击new

 添加bloom

 勾选Intensity调节亮度

 

 非常炫酷

 

 将材质拖到其他物体同样能完成渲染

 

接下来通过脚本实现控制材质的变化:

点击空格发生材质变化:

代码:

using UnityEngine;

public class Dissolve : MonoBehaviour
{
    Material material;//获取材质组件
    bool isDissolving = false;
    float fade = 1f;
    // Start is called before the first frame update
    void Start()
    {
        material = GetComponent<SpriteRenderer>().material;
    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            isDissolving = true;
        }
        if (isDissolving)
        {
            fade -= Time.deltaTime;
            if (fade <= 0f)
            {
                fade = 0f;
                isDissolving = false;
            }
            material.SetFloat("_Fade", fade);
        }
    }
}

 脚本拖拽到角色即可:

so cool!

 

场景:

 步骤:

 

 

 接下来还会更新shake、shoot等内容,一起进步吧