using UnityEngine;
using System.Collections;
public class ShaderVariableSetter : MonoBehaviour {
public Material sequenceMaterial;
void Update () {
sequenceMaterial.SetInt("_CurrentFrame", Mathf.FloorToInt(Time.time*12));
}
}
Этот класс надо прикрепить к одному из объектов в сцене, а потом в поле sequenceMaterial перетянуть материал из вкладки Project
будет менять переменную _CurrentFrame внутри шейдера. Важно, что если переменная внутри шейдера типа float, то и устанавливать её надо функцией SetFloat, а в нашем случае uint и мы используем функцию SetInt.
Этому шейдеру для работы нужна картинка состоящая из кадров анимации. _WidthFramesCount - число кадров в ширину на картинке, _HeightFramesCount - число кадров в высоту.