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
2026-07-18 16:40:18 +01:00

46 lines
1.8 KiB
C#

using System.Linq;
using GameCult.Eve.UnityScene;
using UnityEditor;
using UnityEngine;
using UnityEngine.Rendering;
using UnityEngine.Rendering.Universal;
public static class GenericEveUnityRenderPipeline
{
private const string PostProcessDataGuid = "41439944d30ece34e96484bdb6645b55";
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);
}
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);
}
EditorUtility.SetDirty(renderer);
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);
AssetDatabase.SaveAssets();
}
}