46 lines
1.8 KiB
C#
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();
|
|
}
|
|
}
|