using UnityEngine;
public class ColorManager : MonoBehaviour {
[SerializeField]
Material[] materials;
[SerializeField]
Material lockedMaterial;
[SerializeField]
Color lockedColor;
float offset = 0;
int offsetPropertyId;
public static ColorManager Instance { get; private set; } = null;
public int ColorCount => materials.Length;
private void Awake() {
Instance = this;
offsetPropertyId = Shader.PropertyToID("HueOffset");
}
public Material this[int colorIndex] {
get {
if (colorIndex == -1) return lockedMaterial;
return materials[colorIndex];
}
}
private void Update() {
offset += Time.deltaTime;
offset %= 1;
for (int i = 0; i < materials.Length; i++) {
var mat = materials[i];
mat.SetFloat("HueOffset", offset);
//mat.SetFloat(offsetPropertyId, offset);
}
}
}