2026-07-18 16:40:18 +01:00
using System.Linq ;
using GameCult.Eve.UnityScene ;
2026-07-15 04:58:50 +01:00
using UnityEditor ;
using UnityEngine ;
using UnityEngine.Rendering ;
using UnityEngine.Rendering.Universal ;
public static class GenericEveUnityRenderPipeline
{
2026-07-18 16:40:18 +01:00
private const string PostProcessDataGuid = "41439944d30ece34e96484bdb6645b55" ;
2026-07-15 04:58:50 +01:00
private const string RendererPath = "Assets/GenericEveUnityRenderer.asset" ;
private const string PipelinePath = "Assets/GenericEveUnityRenderPipeline.asset" ;
public static void Configure ( )
{
var renderer = AssetDatabase . LoadAssetAtPath < UniversalRendererData > ( RendererPath ) ;
if ( renderer = = null )
{
renderer = ScriptableObject . CreateInstance < UniversalRendererData > ( ) ;
AssetDatabase . CreateAsset ( renderer , RendererPath ) ;
}
2026-07-18 16:40:18 +01:00
renderer . postProcessData = AssetDatabase . LoadAssetAtPath < PostProcessData > (
AssetDatabase . GUIDToAssetPath ( PostProcessDataGuid ) ) ;
if ( ! renderer . rendererFeatures . OfType < EveUnityRendererFeature > ( ) . Any ( ) )
{
var feature = ScriptableObject . CreateInstance < EveUnityRendererFeature > ( ) ;
feature . name = "Eve Unity World Effects" ;
AssetDatabase . AddObjectToAsset ( feature , renderer ) ;
renderer . rendererFeatures . Add ( feature ) ;
2026-07-19 00:33:07 +01:00
EditorUtility . SetDirty ( feature ) ;
2026-07-18 16:40:18 +01:00
}
2026-07-19 00:33:07 +01:00
renderer . SetDirty ( ) ;
2026-07-18 16:40:18 +01:00
EditorUtility . SetDirty ( renderer ) ;
2026-07-15 04:58:50 +01:00
var pipeline = AssetDatabase . LoadAssetAtPath < UniversalRenderPipelineAsset > ( PipelinePath ) ;
if ( pipeline = = null )
{
pipeline = UniversalRenderPipelineAsset . Create ( renderer ) ;
AssetDatabase . CreateAsset ( pipeline , PipelinePath ) ;
}
GraphicsSettings . defaultRenderPipeline = pipeline ;
QualitySettings . renderPipeline = pipeline ;
EditorUtility . SetDirty ( pipeline ) ;
2026-07-19 00:33:07 +01:00
AssetDatabase . SaveAssetIfDirty ( renderer ) ;
AssetDatabase . SaveAssetIfDirty ( pipeline ) ;
2026-07-15 04:58:50 +01:00
AssetDatabase . SaveAssets ( ) ;
}
}