using System; using UnityEditor.ShaderGraph; using UnityEngine.Rendering; namespace UnityEditor.Rendering.Universal.ShaderGraph { internal static class CreateTerrainShaderGraph { [MenuItem("Assets/Create/Shader Graph/URP/Terrain Lit Shader Graph", priority = CoreUtils.Sections.section4 + CoreUtils.Priorities.assetsCreateShaderMenuPriority + 2)] public static void CreateTerrainGraph() { var target = (UniversalTarget)Activator.CreateInstance(typeof(UniversalTarget)); target.TrySetActiveSubTarget(typeof(UniversalTerrainLitSubTarget)); var blockDescriptors = new[] { BlockFields.VertexDescription.Position, BlockFields.SurfaceDescription.BaseColor, BlockFields.SurfaceDescription.NormalTS, BlockFields.SurfaceDescription.Metallic, BlockFields.SurfaceDescription.Emission, BlockFields.SurfaceDescription.Smoothness, BlockFields.SurfaceDescription.Occlusion, }; GraphUtil.CreateNewGraphWithOutputs(new[] {target}, blockDescriptors); } } }