TextureData.cs 912 B

123456789101112131415161718192021222324252627282930313233
  1. using UnityEngine;
  2. [CreateAssetMenu]
  3. public class TextureData : UpdatableData
  4. {
  5. const int maxLayers = 4;
  6. public Color[] baseColors = new Color[maxLayers];
  7. [Range(0, 1)]
  8. public float[] baseStartHeights = new float[maxLayers];
  9. float savedMinHeight;
  10. float savedMaxHeight;
  11. public void ApplyToMaterial(Material material)
  12. {
  13. for (int i = 0; i < maxLayers; i++)
  14. {
  15. material.SetColor($"_baseColor{i}", baseColors[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. }