欢迎光临散文网 会员登陆 & 注册

2.5.1.1 【Shader】UI上Shader关键帧K帧方案

2023-05-22 01:45 作者:非正经动效  | 我要投稿

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

[ExecuteAlways]//在编辑器和运行时都有效
public class ShaderControl : MonoBehaviour
{
    public Color ColorA = Color.black;//暴露颜色参数
    public Color ColorB = Color.black;
    public Color ColorC = Color.black;
    public float FloatA = 0.5f;//暴露浮点数参数
    public float FloatB = 0.5f;
    public float FloatC = 0.5f;
    public Vector4 VectorA = new Vector4(1.0f, 1.0f, 1.0f, 1.0f);//暴露矢量四参数
    public Vector4 VectorB = new Vector4(1.0f, 1.0f, 1.0f, 1.0f);
    public Vector4 VectorC = new Vector4(1.0f, 1.0f, 1.0f, 1.0f);

    Material myMaterial;//创建内部参数
    void Start()
    {
        Image image = GetComponent<Image>();//获取组件Image
        myMaterial = image.material;
    }

    void Update()
    {
        myMaterial.SetColor("_Color_AAAAA", ColorA);//使用暴露参数控制材质内参数
        myMaterial.SetColor("_Color_BBBBB", ColorB);
        myMaterial.SetColor("_Color_CCCCC", ColorC);
        myMaterial.SetFloat("_Float_AAAAA", FloatA);
        myMaterial.SetFloat("_Float_BBBBB", FloatB);
        myMaterial.SetFloat("_Float_CCCCC", FloatC);
        myMaterial.SetVector("_Vector_AAAAA", VectorA);
        myMaterial.SetVector("_Vector_BBBBB", VectorB);
        myMaterial.SetVector("_Vector_CCCCC", VectorC);
    }
}


2.5.1.1 【Shader】UI上Shader关键帧K帧方案的评论 (共 条)

分享到微博请遵守国家法律