Make canonical Unity client buildable and typed-state seeded
This commit is contained in:
parent
530561b946
commit
b4e2f1fcc7
13 changed files with 89 additions and 11 deletions
|
|
@ -2,12 +2,15 @@ using System.IO;
|
|||
using UnityEditor;
|
||||
using UnityEditor.SceneManagement;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Rendering;
|
||||
using UnityEngine.Rendering.Universal;
|
||||
using UnityEngine.SceneManagement;
|
||||
|
||||
public static class AetheriaUnityBuild
|
||||
{
|
||||
public static void BuildWindows()
|
||||
{
|
||||
EnsureRenderPipeline();
|
||||
const string scenePath = "Assets/Aetheria.unity";
|
||||
var scene = EditorSceneManager.NewScene(NewSceneSetup.EmptyScene, NewSceneMode.Single);
|
||||
new GameObject("Aetheria Unity Client").AddComponent<AetheriaUnityClient>();
|
||||
|
|
@ -21,4 +24,40 @@ public static class AetheriaUnityBuild
|
|||
if (report.summary.result != UnityEditor.Build.Reporting.BuildResult.Succeeded)
|
||||
throw new System.InvalidOperationException("Aetheria Unity build failed: " + report.summary.result);
|
||||
}
|
||||
|
||||
private static void EnsureRenderPipeline()
|
||||
{
|
||||
const string settingsDirectory = "Assets/Settings";
|
||||
const string rendererPath = settingsDirectory + "/AetheriaUniversalRenderer.asset";
|
||||
const string pipelinePath = settingsDirectory + "/AetheriaUniversalRenderPipeline.asset";
|
||||
if (!AssetDatabase.IsValidFolder(settingsDirectory))
|
||||
AssetDatabase.CreateFolder("Assets", "Settings");
|
||||
|
||||
var renderer = AssetDatabase.LoadAssetAtPath<UniversalRendererData>(rendererPath);
|
||||
if (renderer == null)
|
||||
{
|
||||
renderer = ScriptableObject.CreateInstance<UniversalRendererData>();
|
||||
renderer.name = "Aetheria Universal Renderer";
|
||||
AssetDatabase.CreateAsset(renderer, rendererPath);
|
||||
}
|
||||
|
||||
var pipeline = AssetDatabase.LoadAssetAtPath<UniversalRenderPipelineAsset>(pipelinePath);
|
||||
if (pipeline == null)
|
||||
{
|
||||
pipeline = ScriptableObject.CreateInstance<UniversalRenderPipelineAsset>();
|
||||
pipeline.name = "Aetheria Universal Render Pipeline";
|
||||
AssetDatabase.CreateAsset(pipeline, pipelinePath);
|
||||
}
|
||||
|
||||
var serialized = new SerializedObject(pipeline);
|
||||
var rendererList = serialized.FindProperty("m_RendererDataList");
|
||||
rendererList.arraySize = 1;
|
||||
rendererList.GetArrayElementAtIndex(0).objectReferenceValue = renderer;
|
||||
serialized.FindProperty("m_DefaultRendererIndex").intValue = 0;
|
||||
serialized.ApplyModifiedPropertiesWithoutUndo();
|
||||
EditorUtility.SetDirty(pipeline);
|
||||
GraphicsSettings.defaultRenderPipeline = pipeline;
|
||||
QualitySettings.renderPipeline = pipeline;
|
||||
AssetDatabase.SaveAssets();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue