From 897e8982f6385ef82af1d1f04c1e696ab1bb1843 Mon Sep 17 00:00:00 2001 From: Remi Chapelain Date: Fri, 12 Jun 2020 15:09:39 +0200 Subject: [PATCH] Upgrade default legacy terrain to HDRP default TerrainLit --- .../UpgradeStandardShaderMaterials.cs | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/com.unity.render-pipelines.high-definition/Editor/Upgraders/UpgradeStandardShaderMaterials.cs b/com.unity.render-pipelines.high-definition/Editor/Upgraders/UpgradeStandardShaderMaterials.cs index 3caefc2fd49..e474ad3aa5c 100644 --- a/com.unity.render-pipelines.high-definition/Editor/Upgraders/UpgradeStandardShaderMaterials.cs +++ b/com.unity.render-pipelines.high-definition/Editor/Upgraders/UpgradeStandardShaderMaterials.cs @@ -35,6 +35,29 @@ internal static void UpgradeMaterialsSelection() { MaterialUpgrader.UpgradeSelection(GetHDUpgraders(), "Upgrade to HD Material"); } + + [MenuItem("Edit/Render Pipeline/Upgrade Scene Terrains to High Definition Terrains", priority = CoreUtils.editMenuPriority2)] + static void UpgradeSceneTerrainsToHighDefinitionTerrains(MenuCommand menuCommand) + { + var LegacyDefaultTerrainMat = AssetDatabase.GetBuiltinExtraResource("Default-Terrain-Standard.mat"); + var HDRPTerrainMat = AssetDatabase.LoadAssetAtPath("Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipelineResources/Material/DefaultHDTerrainMaterial.mat"); + var terrainArray = UnityEngine.GameObject.FindObjectsOfType(); + + if(terrainArray.Length == 0) + { + Debug.LogWarning("No terrains were found in the scene."); + return; + } + + foreach (Terrain currentTerrain in terrainArray) + { + if(currentTerrain.materialTemplate == LegacyDefaultTerrainMat) + { + currentTerrain.materialTemplate = HDRPTerrainMat; + } + } + } + [MenuItem("Edit/Render Pipeline/Multiply Unity Builtin Directional Light Intensity to match High Definition", priority = CoreUtils.editMenuPriority2)] internal static void UpgradeLights()