TextureData.cs 918 B

123456789101112131415161718192021222324252627282930313233
  1. using UnityEngine;
  2. [CreateAssetMenu()]
  3. public class TextureData : UpdatableData
  4. {
  5. const int MAX_LAYERS = 8;
  6. public Color[] baseColours = new Color[MAX_LAYERS];
  7. [Range(0,1)]
  8. public float[] baseStartHeights = new float[MAX_LAYERS];
  9. float savedMinHeight;
  10. float savedMaxHeight;
  11. public void ApplyToMaterial(Material material)
  12. {
  13. for (int i = 0; i < MAX_LAYERS; i++)
  14. {
  15. material.SetColor($"_baseColor{i}", baseColours[i]);
  16. material.SetFloat($"_baseStartHeight{i}", baseStartHeights[i]);
  17. }
  18. UpdateMeshHeights(material, savedMinHeight, savedMaxHeight);
  19. }
  20. public void UpdateMeshHeights(Material material, float minHeight, float maxHeight)
  21. {
  22. savedMinHeight = minHeight;
  23. savedMaxHeight = maxHeight;
  24. material.SetFloat("_minHeight", minHeight);
  25. material.SetFloat("maxHeight", maxHeight);
  26. }
  27. }