2021-09-09 20:42:29 -04:00

98 lines
3.9 KiB
C#

#if UNITY_EDITOR //file must be in realtime assembly folder to be found in HDRPAsset
using System;
namespace UnityEngine.Rendering.HighDefinition
{
[HelpURL(Documentation.baseURL + Documentation.version + Documentation.subURL + "HDRP-Asset" + Documentation.endURL)]
public partial class HDRenderPipelineEditorResources : ScriptableObject
{
[Reload(new[]
{
"Runtime/RenderPipelineResources/SkinDiffusionProfile.asset",
"Runtime/RenderPipelineResources/FoliageDiffusionProfile.asset"
})]
[SerializeField]
internal DiffusionProfileSettings[] defaultDiffusionProfileSettingsList;
[Reload("Editor/RenderPipelineResources/DefaultSettingsVolumeProfile.asset")]
public VolumeProfile defaultSettingsVolumeProfile;
[Serializable, ReloadGroup]
public sealed class ShaderResources
{
public Shader terrainDetailLitShader;
public Shader terrainDetailGrassShader;
public Shader terrainDetailGrassBillboardShader;
}
[Serializable, ReloadGroup]
public sealed class MaterialResources
{
// Defaults
[Reload("Runtime/RenderPipelineResources/Material/DefaultHDMaterial.mat")]
public Material defaultDiffuseMat;
[Reload("Runtime/RenderPipelineResources/Material/DefaultHDMirrorMaterial.mat")]
public Material defaultMirrorMat;
[Reload("Runtime/RenderPipelineResources/Material/DefaultHDDecalMaterial.mat")]
public Material defaultDecalMat;
[Reload("Runtime/RenderPipelineResources/Material/DefaultHDParticleMaterial.mat")]
public Material defaultParticleMat;
[Reload("Runtime/RenderPipelineResources/Material/DefaultHDTerrainMaterial.mat")]
public Material defaultTerrainMat;
[Reload("Editor/RenderPipelineResources/Material/GUITextureBlit2SRGB.mat")]
public Material GUITextureBlit2SRGB;
}
[Serializable, ReloadGroup]
public sealed class TextureResources
{
}
[Serializable, ReloadGroup]
public sealed class ShaderGraphResources
{
[Reload("Runtime/RenderPipelineResources/ShaderGraph/AutodeskInteractive.shadergraph")]
public Shader autodeskInteractive;
[Reload("Runtime/RenderPipelineResources/ShaderGraph/AutodeskInteractiveMasked.shadergraph")]
public Shader autodeskInteractiveMasked;
[Reload("Runtime/RenderPipelineResources/ShaderGraph/AutodeskInteractiveTransparent.shadergraph")]
public Shader autodeskInteractiveTransparent;
[Reload("Runtime/Material/Nature/SpeedTree8.shadergraph")]
public Shader defaultSpeedTree8Shader;
}
[Serializable, ReloadGroup]
public sealed class LookDevResources
{
[Reload("Editor/RenderPipelineResources/DefaultLookDevProfile.asset")]
public VolumeProfile defaultLookDevVolumeProfile;
}
public ShaderResources shaders;
public MaterialResources materials;
public TextureResources textures;
public ShaderGraphResources shaderGraphs;
public LookDevResources lookDev;
}
[UnityEditor.CustomEditor(typeof(HDRenderPipelineEditorResources))]
class HDRenderPipelineEditorResourcesEditor : UnityEditor.Editor
{
public override void OnInspectorGUI()
{
DrawDefaultInspector();
// Add a "Reload All" button in inspector when we are in developer's mode
if (UnityEditor.EditorPrefs.GetBool("DeveloperMode")
&& GUILayout.Button("Reload All"))
{
foreach (var field in typeof(HDRenderPipelineEditorResources).GetFields())
field.SetValue(target, null);
ResourceReloader.ReloadAllNullIn(target, HDUtils.GetHDRenderPipelinePath());
}
}
}
}
#endif