using System; using System.Collections.Generic; using UnityEditor.Rendering.Converter; using UnityEngine; using UnityEngine.Categorization; using UnityEngine.Rendering; using UnityEngine.Rendering.Universal; namespace UnityEditor.Rendering.Universal { [Serializable] [PipelineConverter("Built-in", "Universal Render Pipeline (Universal Renderer)")] [BatchModeConverterClassInfo("BuiltInToURP", "ReadonlyMaterial")] [ElementInfo(Name = "Material Reference Converter", Order = 100, Description = "Converts references to Built-In readonly materials to URP readonly materials.")] internal class BuiltInToURP3DReadonlyMaterialConverter : ReadonlyMaterialConverter { public override bool isEnabled { get { if (GraphicsSettings.currentRenderPipeline is not UniversalRenderPipelineAsset urpAsset) return false; return urpAsset.scriptableRenderer is UniversalRenderer; } } public override string isDisabledMessage => "Converter requires URP with an Universal Renderer. Convert your project to URP to use this converter."; protected override Dictionary> materialMappings { get { return new() { ["Default-Diffuse"] = () => GraphicsSettings.GetRenderPipelineSettings().defaultMaterial, ["Default-Material"] = () => GraphicsSettings.GetRenderPipelineSettings().defaultMaterial, ["Default-ParticleSystem"] = () => GraphicsSettings.GetRenderPipelineSettings().defaultParticleUnlitMaterial, ["Default-Particle"] = () => GraphicsSettings.GetRenderPipelineSettings().defaultParticleUnlitMaterial, ["Default-Terrain-Diffuse"] = () => GraphicsSettings.GetRenderPipelineSettings().defaultTerrainLitMaterial, ["Default-Terrain-Specular"] = () => GraphicsSettings.GetRenderPipelineSettings().defaultTerrainLitMaterial, ["Default-Terrain-Standard"] = () => GraphicsSettings.GetRenderPipelineSettings().defaultTerrainLitMaterial, ["Sprites-Default"] = () => GraphicsSettings.GetRenderPipelineSettings().defaultLitMaterial, ["Sprites-Mask"] = () => GraphicsSettings.GetRenderPipelineSettings().defaultLitMaterial, ["SpatialMappingOcclusion"] = () => AssetDatabase.LoadAssetAtPath("Packages/com.unity.render-pipelines.universal/Runtime/Materials/SpatialMappingOcclusion.mat"), ["SpatialMappingWireframe"] = () => AssetDatabase.LoadAssetAtPath("Packages/com.unity.render-pipelines.universal/Runtime/Materials/SpatialMappingWireframe.mat"), }; } } } }