2.5.1.1 【Shader】UI上Shader關(guān)鍵幀K幀方案
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
[ExecuteAlways]//在編輯器和運(yùn)行時(shí)都有效
public class ShaderControl : MonoBehaviour
{
??? public Color ColorA = Color.black;//暴露顏色參數(shù)
??? public Color ColorB = Color.black;
??? public Color ColorC = Color.black;
??? public float FloatA = 0.5f;//暴露浮點(diǎn)數(shù)參數(shù)
??? public float FloatB = 0.5f;
??? public float FloatC = 0.5f;
??? public Vector4 VectorA = new Vector4(1.0f, 1.0f, 1.0f, 1.0f);//暴露矢量四參數(shù)
??? 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;//創(chuàng)建內(nèi)部參數(shù)
??? void Start()
??? {
??????? Image image = GetComponent<Image>();//獲取組件Image
??????? myMaterial = image.material;
??? }
??? void Update()
??? {
??????? myMaterial.SetColor("_Color_AAAAA", ColorA);//使用暴露參數(shù)控制材質(zhì)內(nèi)參數(shù)
??????? 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);
??? }
}
