TC_TerrainSettings.cs 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. using UnityEngine;
  2. using System;
  3. namespace TerrainComposer2
  4. {
  5. [ExecuteInEditMode]
  6. public class TC_TerrainSettings : MonoBehaviour
  7. {
  8. // Base Terrain
  9. public float heightmapPixelError = 5.0f;
  10. public int heightmapMaximumLOD = 0;
  11. // Tree & Detail Terrain
  12. public bool drawTreesAndFoliage = true;
  13. public float treeDistance = 2000.0f;
  14. public float detailObjectDistance = 80.0f;
  15. public float detailObjectDensity = 1.0f;
  16. public float treeBillboardDistance = 50.0f;
  17. public int treeMaximumFullLODCount = 50;
  18. public float basemapDistance = 20000;
  19. public void Start()
  20. {
  21. SetTerrainSettings();
  22. }
  23. public void SetTerrainSettings()
  24. {
  25. Terrain terrain = GetComponent<Terrain>();
  26. if (terrain == null) return;
  27. terrain.heightmapPixelError = heightmapPixelError;
  28. terrain.heightmapMaximumLOD = heightmapMaximumLOD;
  29. if (drawTreesAndFoliage)
  30. {
  31. terrain.treeDistance = treeDistance;
  32. terrain.detailObjectDistance = detailObjectDistance;
  33. }
  34. else
  35. {
  36. terrain.treeDistance = 0.0f;
  37. terrain.detailObjectDistance = 0.0f;
  38. }
  39. terrain.detailObjectDensity = detailObjectDensity;
  40. terrain.treeMaximumFullLODCount = treeMaximumFullLODCount;
  41. terrain.treeBillboardDistance = treeBillboardDistance;
  42. terrain.treeMaximumFullLODCount = treeMaximumFullLODCount;
  43. terrain.basemapDistance = basemapDistance;
  44. terrain.terrainData.wavingGrassAmount = 0.25f;
  45. }
  46. }
  47. }