Skip to content

Commit d7d65fa

Browse files
committed
wip
1 parent b3c43c4 commit d7d65fa

File tree

2 files changed

+62
-6
lines changed

2 files changed

+62
-6
lines changed

Assets/Editor/RenderPipelineDefinesSetup.cs

Lines changed: 62 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,88 @@
11
using UnityEditor;
2+
using UnityEditor.Build;
3+
using UnityEditor.PackageManager;
24
using UnityEngine;
35

46
namespace UnityVolumeRendering
57
{
68
/// <summary>
79
/// Automatically adds scripting define symbols when render pipeline packages are detected.
810
/// This allows shaders to use #ifdef UVR_URP and #ifdef UVR_HDRP to conditionally compile code.
11+
/// Updates automatically on Unity load, when build target changes, and when packages are added/removed.
912
/// </summary>
1013
[InitializeOnLoad]
11-
public class RenderPipelineDefinesSetup
14+
public class RenderPipelineDefinesSetup : IActiveBuildTargetChanged
1215
{
1316
private const string URP_DEFINE = "UVR_URP";
1417
private const string HDRP_DEFINE = "UVR_HDRP";
18+
private const string URP_PACKAGE = "com.unity.render-pipelines.universal";
19+
private const string HDRP_PACKAGE = "com.unity.render-pipelines.high-definition";
20+
21+
// IActiveBuildTargetChanged implementation
22+
public int callbackOrder => 0;
1523

1624
static RenderPipelineDefinesSetup()
25+
{
26+
// Run on Unity load
27+
UpdateDefines();
28+
29+
// Subscribe to package manager events
30+
Events.registeredPackages += OnPackagesChanged;
31+
}
32+
33+
/// <summary>
34+
/// Called when packages are added, removed, or updated.
35+
/// </summary>
36+
private static void OnPackagesChanged(PackageRegistrationEventArgs args)
37+
{
38+
bool needsUpdate = false;
39+
40+
// Check if any render pipeline packages were added
41+
foreach (var package in args.added)
42+
{
43+
if (package.name == URP_PACKAGE || package.name == HDRP_PACKAGE)
44+
{
45+
needsUpdate = true;
46+
Debug.Log($"[Unity Volume Rendering] Detected package addition: {package.name}");
47+
break;
48+
}
49+
}
50+
51+
// Check if any render pipeline packages were removed
52+
if (!needsUpdate)
53+
{
54+
foreach (var package in args.removed)
55+
{
56+
if (package.name == URP_PACKAGE || package.name == HDRP_PACKAGE)
57+
{
58+
needsUpdate = true;
59+
Debug.Log($"[Unity Volume Rendering] Detected package removal: {package.name}");
60+
break;
61+
}
62+
}
63+
}
64+
65+
if (needsUpdate)
66+
{
67+
UpdateDefines();
68+
}
69+
}
70+
71+
// Called when build target changes
72+
public void OnActiveBuildTargetChanged(BuildTarget previousTarget, BuildTarget newTarget)
1773
{
1874
UpdateDefines();
1975
}
2076

21-
[MenuItem("Tools/Unity Volume Rendering/Update Render Pipeline Defines")]
22-
public static void UpdateDefines()
77+
[MenuItem("Volume Rendering/Update Render Pipeline Defines")]
78+
private static void UpdateDefines()
2379
{
2480
bool urpInstalled = IsPackageInstalled("com.unity.render-pipelines.universal");
2581
bool hdrpInstalled = IsPackageInstalled("com.unity.render-pipelines.high-definition");
2682

2783
BuildTargetGroup buildTargetGroup = EditorUserBuildSettings.selectedBuildTargetGroup;
28-
string currentDefines = PlayerSettings.GetScriptingDefineSymbolsForGroup(buildTargetGroup);
84+
NamedBuildTarget namedBuildTarget = NamedBuildTarget.FromBuildTargetGroup(buildTargetGroup);
85+
string currentDefines = PlayerSettings.GetScriptingDefineSymbols(namedBuildTarget);
2986

3087
bool modified = false;
3188

@@ -59,7 +116,7 @@ public static void UpdateDefines()
59116

60117
if (modified)
61118
{
62-
PlayerSettings.SetScriptingDefineSymbolsForGroup(buildTargetGroup, currentDefines);
119+
PlayerSettings.SetScriptingDefineSymbols(namedBuildTarget, currentDefines);
63120
}
64121
}
65122

Assets/Shaders/URP/DirectVolumeRenderingShader.shader

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@
4545
#pragma fragment frag
4646

4747
#include "../Include/URPIncludes.hlsl"
48-
#include "../Include/BackwardsCompatibility.hlsl"
4948
#include "../Include/VolumeRendering.hlsl"
5049

5150
#define AMBIENT_LIGHTING_FACTOR 0.2

0 commit comments

Comments
 (0)