This repository has been archived on 2026-10-29. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
EveUnity/ReleaseConsumerProject/Assets/Editor/GenericEveUnityRenderPipeline.cs

50 lines
1.9 KiB
C#
Raw Permalink Normal View History

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();
}
}