Remove Editor Tool
This commit is contained in:
@@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f1c780dd8fa34473aa4d21fb3ab91932
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,89 +0,0 @@
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
using System;
|
||||
using System.Reflection;
|
||||
|
||||
namespace Project.Editor
|
||||
{
|
||||
internal static class Urp3DWebGlMigration
|
||||
{
|
||||
private const string MigrationVersionKey = "Project.URP3DWebGLMigration.v1";
|
||||
private const string SettingsFolder = "Assets/Settings";
|
||||
private const string PipelineAssetPath = SettingsFolder + "/UniversalRP.asset";
|
||||
private const string RendererAssetPath = SettingsFolder + "/UniversalRenderer.asset";
|
||||
private const string OldRendererAssetPath = SettingsFolder + "/Renderer2D.asset";
|
||||
private const string UniversalRuntimeAssembly = "Unity.RenderPipelines.Universal.Runtime";
|
||||
private const string PipelineAssetTypeName = "UnityEngine.Rendering.Universal.UniversalRenderPipelineAsset";
|
||||
private const string RendererDataTypeName = "UnityEngine.Rendering.Universal.UniversalRendererData";
|
||||
|
||||
[InitializeOnLoadMethod]
|
||||
private static void RunOnLoad()
|
||||
{
|
||||
EditorApplication.delayCall += TryMigrate;
|
||||
}
|
||||
|
||||
[MenuItem("Tools/Rendering/Run URP 3D WebGL Migration")]
|
||||
private static void RunFromMenu()
|
||||
{
|
||||
SessionState.EraseString(MigrationVersionKey);
|
||||
TryMigrate();
|
||||
}
|
||||
|
||||
private static void TryMigrate()
|
||||
{
|
||||
if (SessionState.GetString(MigrationVersionKey, string.Empty) == "done")
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
SessionState.SetString(MigrationVersionKey, "done");
|
||||
|
||||
Type pipelineAssetType = Type.GetType($"{PipelineAssetTypeName}, {UniversalRuntimeAssembly}");
|
||||
Type rendererDataType = Type.GetType($"{RendererDataTypeName}, {UniversalRuntimeAssembly}");
|
||||
if (pipelineAssetType == null || rendererDataType == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
UnityEngine.Object pipelineAsset = AssetDatabase.LoadAssetAtPath(PipelineAssetPath, pipelineAssetType);
|
||||
if (pipelineAsset == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
UnityEngine.Object rendererData = AssetDatabase.LoadAssetAtPath(RendererAssetPath, rendererDataType);
|
||||
if (rendererData == null)
|
||||
{
|
||||
rendererData = ScriptableObject.CreateInstance(rendererDataType);
|
||||
AssetDatabase.CreateAsset(rendererData, RendererAssetPath);
|
||||
InvokeNonPublicMethod(rendererData, "OnValidate");
|
||||
}
|
||||
|
||||
SerializedObject pipelineObject = new SerializedObject(pipelineAsset);
|
||||
pipelineObject.FindProperty("m_RendererType").intValue = 0;
|
||||
pipelineObject.FindProperty("m_RendererData").objectReferenceValue = rendererData;
|
||||
|
||||
SerializedProperty rendererList = pipelineObject.FindProperty("m_RendererDataList");
|
||||
rendererList.arraySize = 1;
|
||||
rendererList.GetArrayElementAtIndex(0).objectReferenceValue = rendererData;
|
||||
pipelineObject.FindProperty("m_DefaultRendererIndex").intValue = 0;
|
||||
pipelineObject.ApplyModifiedPropertiesWithoutUndo();
|
||||
|
||||
EditorUtility.SetDirty(rendererData);
|
||||
EditorUtility.SetDirty(pipelineAsset);
|
||||
AssetDatabase.SaveAssets();
|
||||
|
||||
if (AssetDatabase.LoadAssetAtPath<UnityEngine.Object>(OldRendererAssetPath) != null)
|
||||
{
|
||||
AssetDatabase.DeleteAsset(OldRendererAssetPath);
|
||||
}
|
||||
}
|
||||
|
||||
private static void InvokeNonPublicMethod(object target, string methodName)
|
||||
{
|
||||
target.GetType()
|
||||
.GetMethod(methodName, BindingFlags.Instance | BindingFlags.NonPublic)
|
||||
?.Invoke(target, null);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0fc309fbad294f9b9558b688c57ea9c8
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user