using UnityEngine; [RequireComponent (typeof(Terrain))] public class ApplyDissolveShaderToTerrain : MonoBehaviour { public Terrain terrain; public float dissolveAmount = 0f; public Shader shader; private Material originalMaterial; private Material overrideMaterial; void Start() { terrain = GetComponent(); overrideMaterial = new Material(shader); originalMaterial = terrain.materialTemplate; SetOriginalMaterial(); } private void Update() { terrain.materialTemplate.SetFloat("_dissolveAmount", dissolveAmount); } public void SetOriginalMaterial() { terrain.materialTemplate = originalMaterial; } public void SetOverrideMaterial() { terrain.materialTemplate = overrideMaterial; } }