Skip to content

Commit 5ec8c85

Browse files
FredMoreauEvergreen
authored andcommitted
[ShaderGraph] Template Workflows
1 parent 4f38b58 commit 5ec8c85

3 files changed

Lines changed: 16 additions & 13 deletions

File tree

Packages/com.unity.render-pipelines.universal/Editor/Decal/DecalProjectorEditor.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ partial class DecalProjectorEditor : Editor
2424
static readonly GUIContent k_NewDecalMaterialButtonText = EditorGUIUtility.TrTextContent("New", "Creates a new Decal material.");
2525
static readonly string k_NewDecalText = "URP Decal";
2626
static readonly string k_NewSGDecalText = "ShaderGraph Decal";
27+
static readonly string k_NewSGDecalFromTemplateText = "ShaderGraph Decal from Template";
2728
static readonly string k_DefaultDecalShaderGraphTemplatePath = "Packages/com.unity.render-pipelines.universal/Shaders/Decal.shadergraph";
2829

2930
static Color fullColor
@@ -728,9 +729,7 @@ internal void MaterialFieldWithButton(SerializedProperty prop, GUIContent label)
728729

729730
menu.AddItem(new GUIContent(k_NewDecalText), false, () => CreateDefaultDecalMaterial(targets));
730731
menu.AddItem(new GUIContent(k_NewSGDecalText), false, () => CreateDecalMaterialFromTemplate(targets, k_DefaultDecalShaderGraphTemplatePath));
731-
732-
// For later introduction of SG Filtered Template Browser
733-
//menu.AddItem(new GUIContent(k_NewSGDecalFromTemplateText), false, () => CreateDecalMaterialFromTemplate(targets));
732+
menu.AddItem(new GUIContent(k_NewSGDecalFromTemplateText), false, () => CreateDecalMaterialFromTemplate(targets));
734733

735734
menu.DropDown(newFieldRect);
736735
}
@@ -742,7 +741,9 @@ static void CreateDecalMaterialFromTemplate(UnityEngine.Object[] decalProjectors
742741
SetDecalMaterial(decalProjectors, material);
743742
},
744743
templatePath,
745-
$"New {k_NewSGDecalText}");
744+
$"New {k_NewSGDecalText}",
745+
null,
746+
"shadergraph.material=decal");
746747
}
747748

748749
static void CreateDefaultDecalMaterial(UnityEngine.Object[] decalProjectors)

Packages/com.unity.render-pipelines.universal/Editor/RendererFeatures/FullScreenPassRendererFeatureEditor.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ public class FullScreenPassRendererFeatureEditor : Editor
3333
static readonly GUIContent k_NewFullscreenMaterialButtonText = EditorGUIUtility.TrTextContent("New", "Creates a new Fullscreen material.");
3434
static readonly string k_NewBlitShaderText = "SRP Blit Shader";
3535
static readonly string k_NewSGFullscreenText = "ShaderGraph Fullscreen";
36+
static readonly string k_NewSGFullscreenFromTemplateText = "ShaderGraph Fullscreen from Template";
3637
static readonly string k_BlitShaderTemplatePath = "Packages/com.unity.render-pipelines.core/Editor/ScriptTemplates/BlitSRP.txt";
3738
static readonly string k_DefaultFullscreenShaderGraphTemplatePath = "Packages/com.unity.render-pipelines.universal/Shaders/FullscreenInvertColors.shadergraph";
3839

@@ -105,10 +106,7 @@ internal void MaterialFieldWithButton(SerializedProperty prop, GUIContent label)
105106

106107
GenericMenu menu = new GenericMenu();
107108
menu.AddItem(new GUIContent(k_NewSGFullscreenText), false, () => CreateFullscreenMaterialFromTemplate(target as FullScreenPassRendererFeature, k_DefaultFullscreenShaderGraphTemplatePath));
108-
109-
// For later introduction of SG Filtered Template Browser
110-
//menu.AddItem(new GUIContent(k_NewSGFullscreenFromTemplateText), false, () => CreateFullscreenMaterialFromTemplate(target as FullScreenPassRendererFeature));
111-
109+
menu.AddItem(new GUIContent(k_NewSGFullscreenFromTemplateText), false, () => CreateFullscreenMaterialFromTemplate(target as FullScreenPassRendererFeature));
112110
menu.AddItem(new GUIContent(k_NewBlitShaderText), false, () => CreateDefaultFullscreenMaterial(target as FullScreenPassRendererFeature));
113111
menu.DropDown(newFieldRect);
114112
}
@@ -123,7 +121,9 @@ internal static void CreateFullscreenMaterialFromTemplate(FullScreenPassRenderer
123121
Selection.activeObject = selection; //restoring selection
124122
},
125123
templatePath,
126-
$"New {k_NewSGFullscreenText}");
124+
$"New {k_NewSGFullscreenText}",
125+
null,
126+
"shadergraph.material=fullscreen");
127127
}
128128

129129
internal static void CreateDefaultFullscreenMaterial(FullScreenPassRendererFeature obj)

Packages/com.unity.shadergraph/Editor/AssetCallbacks/CreateShaderGraph.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public static void CreateFromTemplate()
2727
/// <param name="callback">Callback to execute with the created shader graph asset.</param>
2828
/// <param name="templateSourcePath">Shader Graph template file. Use string.Empty for Blank Shader Graph.</param>
2929
/// <param name="filename">New Shader Graph filename.</param>
30-
internal static void CreateFromTemplate(Action<string> callback = null, string templateSourcePath = null, string filename = null)
30+
internal static void CreateFromTemplate(Action<string> callback = null, string templateSourcePath = null, string filename = null, string hiddenSearchQuery = null, string initialSearchQuery = null)
3131
{
3232
if (!string.IsNullOrEmpty(templateSourcePath))
3333
{
@@ -58,7 +58,7 @@ internal static void CreateFromTemplate(Action<string> callback = null, string t
5858

5959
if (templateSourcePath == null)
6060
{
61-
GraphViewTemplateWindow.ShowCreateFromTemplate(shaderGraphTemplateHelper, action.CreateAndRenameGraphFromTemplate, showSaveDialog: !projectWindowIsVisible);
61+
GraphViewTemplateWindow.ShowCreateFromTemplate(shaderGraphTemplateHelper, action.CreateAndRenameGraphFromTemplate, showSaveDialog: !projectWindowIsVisible, hiddenSearchQuery: hiddenSearchQuery, initialSearchQuery: initialSearchQuery);
6262
}
6363
else
6464
{
@@ -85,7 +85,7 @@ internal static void CreateFromTemplate(Action<string> callback = null, string t
8585
/// <param name="callback">Callback to execute with the created material.</param>
8686
/// <param name="templateSourcePath">Shader Graph template file. Use string.Empty for Blank Shader Graph.</param>
8787
/// /// <param name="filename">New Shader Graph filename.</param>
88-
internal static void CreateGraphAndMaterialFromTemplate(Action<Material> callback = null, string templateSourcePath = null, string filename = null)
88+
internal static void CreateGraphAndMaterialFromTemplate(Action<Material> callback = null, string templateSourcePath = null, string filename = null, string hiddenSearchQuery = null, string initialSearchQuery = null)
8989
{
9090
CreateFromTemplate((template) =>
9191
{
@@ -113,7 +113,9 @@ internal static void CreateGraphAndMaterialFromTemplate(Action<Material> callbac
113113
}
114114
},
115115
templateSourcePath,
116-
filename);
116+
filename,
117+
hiddenSearchQuery,
118+
initialSearchQuery);
117119
}
118120
}
119121
}

0 commit comments

Comments
 (0)