Files
Fishing2/Assets/Procedural Worlds/GeNa/Scripts/Editor/Extensions/GeNaRiverScriptDefine.cs
2026-02-28 12:43:44 +08:00

83 lines
2.5 KiB
C#

using UnityEditor;
using UnityEditor.Build;
namespace GeNa.Core
{
[InitializeOnLoad]
public class GeNaRiverScriptDefine
{
static GeNaRiverScriptDefine()
{
SetupGeNaPipelineDefine();
}
public static void SetupGeNaPipelineDefine()
{
bool updateDefines = false;
var buildTargetGroup = EditorUserBuildSettings.selectedBuildTargetGroup;
#if UNITY_2023_1_OR_NEWER
var namedBuildTarget = NamedBuildTarget.FromBuildTargetGroup(buildTargetGroup);
var symbols = PlayerSettings.GetScriptingDefineSymbols(namedBuildTarget);
#else
var symbols = PlayerSettings.GetScriptingDefineSymbolsForGroup(buildTargetGroup);
#endif
switch (GeNaUtility.GetActivePipeline())
{
case Constants.RenderPipeline.BuiltIn:
if (symbols.Contains("GeNa_URP"))
{
updateDefines = true;
symbols = symbols.Replace("GeNa_URP", "");
}
if (symbols.Contains("GeNa_HDRP"))
{
updateDefines = true;
symbols = symbols.Replace("GeNa_HDRP", "");
}
break;
case Constants.RenderPipeline.Universal:
if (!symbols.Contains("GeNa_URP"))
{
updateDefines = true;
symbols += ";GeNa_URP";
}
if (symbols.Contains("GeNa_HDRP"))
{
updateDefines = true;
symbols = symbols.Replace("GeNa_HDRP", "");
}
break;
case Constants.RenderPipeline.HighDefinition:
if (symbols.Contains("GeNa_URP"))
{
updateDefines = true;
symbols = symbols.Replace("GeNa_URP", "");
}
if (!symbols.Contains("GeNa_HDRP"))
{
updateDefines = true;
symbols += ";GeNa_HDRP";
}
break;
}
if (updateDefines)
{
#if UNITY_2023_1_OR_NEWER
PlayerSettings.SetScriptingDefineSymbols(namedBuildTarget, symbols);
#else
PlayerSettings.SetScriptingDefineSymbolsForGroup(buildTargetGroup, symbols);
#endif
}
}
}
}