Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
2e5dd04
[Backport 6000.4] Fixed generated code for preview nodes for UI Toolk…
alexandret-unity Mar 16, 2026
9c4cb30
[Port] [6000.4] Fix UUM-134638 UGUI Shaders sample Fancy Loading Subg…
svc-reach-platform-support Mar 16, 2026
c88a1b0
[Port] [6000.4] [UUM-132565][UUM-132573] [6000.5][2D] Light Batching …
svc-reach-platform-support Mar 16, 2026
d19886a
[Port][6000.4][UUM-122106] Add "is HDR" option to texture shader prop…
april-roszkowski Mar 16, 2026
75d1ee8
[Backport 6000.4] Fix coverage (arcAA) issue with SVG Gradient.
ncerone-unity Mar 16, 2026
106f6b0
[Port] [6000.4] Fix SSAO being applied incorrectly when device is rot…
svc-reach-platform-support Mar 16, 2026
1a88eb5
[Port] [6000.4] Fix shader miscompilation of Shader Graph's Dither no…
svc-reach-platform-support Mar 16, 2026
fd221eb
[Port] [6000.4] [UUM-135640][6000.6][URP 2D] Fix shadow caster 2d cul…
svc-reach-platform-support Mar 16, 2026
c3b8fa0
[Port] [6000.4] Fixed: opening the Volume Profile Menu before Volume …
svc-reach-platform-support Mar 16, 2026
3429031
[Port] [6000.4] [SG] Fixes for Node Preview Preferences issues
svc-reach-platform-support Mar 17, 2026
5c2ac6a
[Port] [6000.4] [UUM-126982] Fixed STP and Reflection Probe Atlas ren…
CalChiu Mar 17, 2026
67c2f4e
[Port] [6000.4] [VFX][UUM-133319] Fix subgraph dependencies
svc-reach-platform-support Mar 17, 2026
0fe81d9
[content automatically redacted] touching PlatformDependent folder
dovydas-girskas-unity3d Mar 18, 2026
d42f51f
[Port] [6000.4] Fix Frame Debugger flicker with water.
svc-reach-platform-support Mar 18, 2026
bf4ef71
[Port] [6000.4] Improve VolumeProfile inspector performance
svc-reach-platform-support Mar 20, 2026
866b7b1
[6.4] Update timeline package to 1.8.10 for SRP, Timeline and couple …
catalina-unity Mar 20, 2026
0eb60fa
[Port] [6000.4] Fix additional lights in Forward rendering
svc-reach-platform-support Mar 23, 2026
dde0082
[Port] [6000.4] docg-7313: Explain how a lower dimension T input valu…
svc-reach-platform-support Mar 24, 2026
cda5bf6
[Port] [6000.4] [UUM-136528] Fixed Nearest-Neighbor upscaling depende…
CalChiu Mar 24, 2026
5504da4
[Port] [6000.4] Fix upgrade error related to URPReflectionProbeSettings
svc-reach-platform-support Mar 24, 2026
60443a4
[Port] [6000.4] [HDRP] Added Missing `_BentNormalMapOS` Texture Decla…
svc-reach-platform-support Mar 25, 2026
3c80397
[Backport 6000.4] Fix badge not correctly showing after graph validat…
ncerone-unity Mar 26, 2026
d935fe1
[Port] [6000.4] Initialise VolumeManager BaseComponentTypes from Defa…
svc-reach-platform-support Mar 26, 2026
482c8f1
[Port] [6000.4] UUM-137827
svc-reach-platform-support Mar 26, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ void IRenderPipelineGraphicsSettingsContextMenu2<TSetting>.PopulateContextMenu(T
bool canCreateNewAsset = RenderPipelineManager.currentPipeline is TRenderPipeline;
VolumeProfileUtils.AddVolumeProfileContextMenuItems(ref menu,
setting.volumeProfile,
s_DefaultVolumeProfileEditor.allEditors,
s_DefaultVolumeProfileEditor == null ? null : s_DefaultVolumeProfileEditor.allEditors,
overrideStateOnReset: true,
defaultVolumeProfilePath: defaultVolumeProfilePath,
onNewVolumeProfileCreated: createdProfile =>
Expand All @@ -151,7 +151,7 @@ void IRenderPipelineGraphicsSettingsContextMenu2<TSetting>.PopulateContextMenu(T
}
VolumeProfileUtils.UpdateGlobalDefaultVolumeProfile<TRenderPipeline>(createdProfile, initialAsset);
},
onComponentEditorsExpandedCollapsed: s_DefaultVolumeProfileEditor.RebuildListViews,
onComponentEditorsExpandedCollapsed: s_DefaultVolumeProfileEditor == null ? null : s_DefaultVolumeProfileEditor.RebuildListViews,
canCreateNewAsset);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,6 @@ internal void SetVolumeProfile(VolumeProfile p)

static Dictionary<Type, VolumeParameterDrawer> s_ParameterDrawers;
SupportedOnRenderPipelineAttribute m_SupportedOnRenderPipelineAttribute;
Type[] m_LegacyPipelineTypes;

static VolumeComponentEditor()
{
Expand Down Expand Up @@ -274,11 +273,6 @@ internal void Init()

var volumeComponentType = volumeComponent.GetType();
m_SupportedOnRenderPipelineAttribute = volumeComponentType.GetCustomAttribute<SupportedOnRenderPipelineAttribute>();

#pragma warning disable CS0618
var supportedOn = volumeComponentType.GetCustomAttribute<VolumeComponentMenuForRenderPipeline>();
m_LegacyPipelineTypes = supportedOn != null ? supportedOn.pipelineTypes : Array.Empty<Type>();
#pragma warning restore CS0618
}

internal void DetermineVisibility(Type renderPipelineAssetType, Type renderPipelineType)
Expand All @@ -295,12 +289,6 @@ internal void DetermineVisibility(Type renderPipelineAssetType, Type renderPipel
return;
}

if (renderPipelineType != null && m_LegacyPipelineTypes.Length > 0)
{
visible = m_LegacyPipelineTypes.Contains(renderPipelineType);
return;
}

visible = true;
}

Expand Down Expand Up @@ -440,24 +428,27 @@ public override void OnInspectorGUI()
}
}

GUIContent m_DisplayTitle;
/// <summary>
/// Sets the label for the component header. Override this method to provide
/// a custom label. If you don't, Unity automatically obtains one from the class name.
/// </summary>
/// <returns>A label to display in the component header.</returns>
public virtual GUIContent GetDisplayTitle()
{
if (m_DisplayTitle != null) return m_DisplayTitle;

var volumeComponentType = volumeComponent.GetType();
var displayInfo = volumeComponentType.GetCustomAttribute<DisplayInfoAttribute>();
if (displayInfo != null && !string.IsNullOrWhiteSpace(displayInfo.name))
return EditorGUIUtility.TrTextContent(displayInfo.name, string.Empty);
return m_DisplayTitle = EditorGUIUtility.TrTextContent(displayInfo.name, string.Empty);

#pragma warning disable CS0618
if (!string.IsNullOrWhiteSpace(volumeComponent.displayName))
return EditorGUIUtility.TrTextContent(volumeComponent.displayName, string.Empty);
return m_DisplayTitle = EditorGUIUtility.TrTextContent(volumeComponent.displayName, string.Empty);
#pragma warning restore CS0618
return EditorGUIUtility.TrTextContent(ObjectNames.NicifyVariableName(volumeComponentType.Name) , string.Empty);

return m_DisplayTitle = EditorGUIUtility.TrTextContent(ObjectNames.NicifyVariableName(volumeComponentType.Name), string.Empty);
}

void AddToggleState(GUIContent content, bool state)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,8 @@ void CreateEditor(VolumeComponent component, SerializedProperty property, int in
else
m_Editors[index] = editor;

FilterEditorsBySearch();

DocumentationUtils.TryGetHelpURL(component.GetType(), out string helpUrl);
helpUrl ??= string.Empty;
m_VolumeComponentHelpUrls[editor] = helpUrl;
Expand Down Expand Up @@ -222,9 +224,22 @@ public void Clear()
asset = null;
}

readonly HashSet<VolumeComponentEditor> m_CurrentSearchFilteredEditors = new();
void FilterEditorsBySearch()
{
m_CurrentSearchFilteredEditors.Clear();
if (string.IsNullOrEmpty(m_SearchString)) return;

foreach (var editor in m_Editors)
{
if (MatchesSearchString(editor.GetDisplayTitle().text))
m_CurrentSearchFilteredEditors.Add(editor);
}
}
bool EditorIsIncludedInCurrentSearch(VolumeComponentEditor editor) => string.IsNullOrEmpty(m_SearchString) || m_CurrentSearchFilteredEditors.Contains(editor);
bool MatchesSearchString(string title)
{
return m_SearchString.Length == 0 || title.Contains(m_SearchString, StringComparison.OrdinalIgnoreCase);
return string.IsNullOrEmpty(m_SearchString) || title.Contains(m_SearchString, StringComparison.OrdinalIgnoreCase);
}

/// <summary>
Expand Down Expand Up @@ -263,7 +278,7 @@ bool ShouldDrawEditor(VolumeComponentEditor editor)
{
if (!editor.visible)
return false;
return MatchesSearchString(editor.GetDisplayTitle().text);
return EditorIsIncludedInCurrentSearch(editor);
}

void DrawEditor(VolumeComponentEditor editor, int index = -1)
Expand Down Expand Up @@ -310,7 +325,11 @@ void DrawEditor(VolumeComponentEditor editor, int index = -1)
{
Rect searchRect = GUILayoutUtility.GetRect(50, EditorGUIUtility.singleLineHeight);
searchRect.width -= 2;
m_SearchString = m_SearchField.OnGUI(searchRect, m_SearchString);
using (var check = new EditorGUI.ChangeCheckScope())
{
m_SearchString = m_SearchField.OnGUI(searchRect, m_SearchString);
if (check.changed) FilterEditorsBySearch();
}
GUILayout.Space(2);

EditorGUILayout.HelpBox(
Expand Down Expand Up @@ -346,7 +365,6 @@ void DrawEditor(VolumeComponentEditor editor, int index = -1)

for (int i = 0; i < editors.Count; i++)
DrawEditor(editors[i]);

GUILayout.Space(8);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -140,19 +140,19 @@ static VolumeComponent GetVolumeComponentOfTypeOrDefault(this VolumeProfile prof
static List<Type> GetTypesMissingFromDefaultProfile(VolumeProfile profile)
{
List<Type> missingTypes = new List<Type>();
var volumeComponentTypes = VolumeManager.instance.baseComponentTypeArray;

var volumeComponentTypes = VolumeManager.instance.isInitialized ?
VolumeManager.instance.baseComponentTypeArray : VolumeManager.instance.LoadBaseTypesByReflection(GraphicsSettings.currentRenderPipelineAssetType);
foreach (var type in volumeComponentTypes)
{
if (profile.components.Find(c => c.GetType() == type) == null)
{
if (type.IsDefined(typeof(ObsoleteAttribute), false) ||
type.IsDefined(typeof(HideInInspector), false))
if (type.IsDefined(typeof(ObsoleteAttribute), false))
continue;

missingTypes.Add(type);
}
}

return missingTypes;
}

Expand All @@ -163,13 +163,14 @@ static List<Type> GetTypesMissingFromDefaultProfile(VolumeProfile profile)
/// <param name="profile">VolumeProfile to use.</param>
/// <param name="defaultValueSource">An optional VolumeProfile asset containing default values to use for
/// any components that are added to <see cref="profile"/>.</param>
public static void EnsureAllOverridesForDefaultProfile(VolumeProfile profile, VolumeProfile defaultValueSource = null)
public static void EnsureAllOverridesForDefaultProfile(VolumeProfile profile, VolumeProfile defaultValueSource = null) => TryEnsureAllOverridesForDefaultProfile(profile, defaultValueSource);
internal static bool TryEnsureAllOverridesForDefaultProfile(VolumeProfile profile, VolumeProfile defaultValueSource = null)
{
// It's possible that the volume profile is assigned to the default asset inside the HDRP package. In
// this case it cannot be modified. User is expected to use HDRP Wizard "Fix" to create a local profile.
var path = AssetDatabase.GetAssetPath(profile);
if (CoreEditorUtils.IsAssetInReadOnlyPackage(path))
return;
return false;

bool changed = false;
int numComponentsBefore = profile.components.Count;
Expand Down Expand Up @@ -241,6 +242,8 @@ public static void EnsureAllOverridesForDefaultProfile(VolumeProfile profile, Vo
VolumeManager.instance.OnVolumeProfileChanged(profile);
EditorUtility.SetDirty(profile);
}

return changed;
}

/// <summary>
Expand Down Expand Up @@ -297,12 +300,14 @@ public static void AddVolumeProfileContextMenuItems(

menu.AddItem(Styles.collapseAll, false, () =>
{
SetComponentEditorsExpanded(componentEditors, false);
if (componentEditors != null)
SetComponentEditorsExpanded(componentEditors, false);
onComponentEditorsExpandedCollapsed?.Invoke();
});
menu.AddItem(Styles.expandAll, false, () =>
{
SetComponentEditorsExpanded(componentEditors, true);
if (componentEditors != null)
SetComponentEditorsExpanded(componentEditors, true);
onComponentEditorsExpandedCollapsed?.Invoke();
});
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ public VolumeComponentMenu(string menu)
/// This attribute allows you to add commands to the <b>Add Override</b> popup menu on Volumes,
/// while also specifying the render pipeline(s) for which the command will be supported.
/// </summary>
[Obsolete(@"VolumeComponentMenuForRenderPipelineAttribute is deprecated. Use VolumeComponentMenu with SupportedOnRenderPipeline instead. #from(2023.1)")]
[Obsolete(@"VolumeComponentMenuForRenderPipelineAttribute is deprecated. Use VolumeComponentMenu with SupportedOnRenderPipeline instead. #from(2023.1)", true)]
public class VolumeComponentMenuForRenderPipeline : VolumeComponentMenu
{
/// <summary>
Expand Down Expand Up @@ -126,7 +126,7 @@ public sealed class VolumeComponentDeprecated : Attribute
/// <para>
/// In the example above, the custom component `ExampleComponent` extends `VolumeComponent` and defines a parameter
/// (`intensity`) that can be manipulated within the volume framework. The `ClampedFloatParameter` is a type of
/// <see cref="VolumeParameter{T}"/> that ensures the value remains within a specified range.
/// <see cref="VolumeParameter{T}"/> that ensures the value remains within a specified range.
/// </para>
/// </example>
[Serializable]
Expand Down Expand Up @@ -164,7 +164,7 @@ public Indent(int relativeAmount = 1)
/// The backing storage of <see cref="parameters"/>. Use this for performance-critical work.
/// </summary>
internal VolumeParameter[] parameterList;

ReadOnlyCollection<VolumeParameter> m_ParameterReadOnlyCollection;

/// <summary>
Expand Down Expand Up @@ -355,7 +355,7 @@ public bool AnyPropertiesIsOverridden()
{
for (int i = 0; i < parameterList.Length; ++i)
{
if (parameterList[i].overrideState)
if (parameterList[i].overrideState)
return true;
}
return false;
Expand Down
Loading
Loading